Larvel5.5如何更改find​​OrFail方法的密钥名称?

时间:2018-01-21 05:31:23

标签: laravel-5 eloquent

我的MySQL表文章主键名是a_id,但当我使用findOrFail方法时,此函数搜索到数据库键名是id,那么如何更改id中的键{1}}到a_id

public function edit($a_id)
{
    $articleData = Article::findOrFail('a_id',$a_id);
    return view('Admin.articleEdit')->with('articleData',$articleData);
}

2 个答案:

答案 0 :(得分:0)

您可以在您的Eloquent模型上设置主键。

class Article extends Model
{
    protected $primaryKey = 'a_id';

请参阅此处的主键段落: https://laravel.com/docs/5.5/eloquent#defining-models

答案 1 :(得分:0)

findOrFail()是一种专门查找名为“id”的标识符字段的方法,这是命名主键的标准命名约定。除非你试图掩盖你的id字段的列名,否则我建议你去id。

要使用findOrFail,您需要更新表以获得名为“id”的id字段或在模型中定义主键:

protected $primaryKey = 'admin_id';

另一个选择是使用firstOrFail(),如下所示:

Article::where('a_id','=',$a_id)->firstOrFail();

以下是有关Eloquent方法的article,可帮助您了解有关findOrFail或FirstOrFail()的更多信息