laravel Eloquent ORM自定义字段名称

时间:2016-06-26 06:24:29

标签: laravel eloquent

我试图通过使用Eloquent并使用以下代码从包含字段productsid的产品表中获取记录。我的型号名称是Products_description。

在我的路线档案中。

Route::get('product/{productsid}','productscontroller@show');

在我的控制器文件中

public function show($productid)
{
$Products = Products_description::find($productid);
return $Products;   
}

但它向我显示Unknown column 'products_description.id'的错误。看起来Eloquent默认尝试通过字段名id获取记录,就像它对表名一样。但是如何通过id以外的表字段获取记录。例如如果是productid,我们会做什么/使用什么?

3 个答案:

答案 0 :(得分:0)

像这样

 $Products = Products_description::where('pruductid',$productid)->first();

或者你可以试试这个

Products_description模型

  class Products_description extends Eloquent {

protected $primaryKey = 'productid';
  }

答案 1 :(得分:0)

我假设您需要在表中查询主键以外的字段。您可以使用:

Products_description::where('productid',$productId)->first()

如果您正在谈论外键,那么您应该在模型中定义它们,如下所示:

return $this->hasOne('App\Phone', 'foreign_key');

以下是相关文件: https://laravel.com/docs/5.1/eloquent-relationships#one-to-one

答案 2 :(得分:0)

在您的模型中,声明您的$primaryKey

class Products_description {
    protected $primaryKey = "productid";

    //
}

这样您就可以使用::findfirstOrFail而不是where