尽管存在SQL列,但未找到它

时间:2017-04-28 13:55:41

标签: php mysql sql laravel

我正在使用Laravel框架来创建原型,并且需要根据数据库从数据库输出单个文章。看起来很简单但我在查询数据库时遇到以下错误:

QueryException in Connection.php line 647:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'articles.id' in 'where clause' (SQL: select * from `articles` where `articles`.`id` = 1 limit 1)

我正在尝试通过文章模型中的文章表基于数据库列article_id检索特定文章。我正在使用资源路由,因此方法名称为“show” - 因此我可以通过URL中的article/{$article_id}进行访问。

这是我的控制器:

public function show($article_id) {

    $article = Article::find($article_id);
    $article->toArray();

    return view('articles.view', array('article' => $article));

}

没有articles.id。它应该是articles_id。我错过了一些明显的东西吗?

在此先感谢,任何指针都非常赞赏。

2 个答案:

答案 0 :(得分:3)

find命令查找设置为主键的任何内容,默认情况下为id。您可以更改模型中的主键:

class Article {

    protected $table = 'articles';
    protected $primaryKey = 'articles_id';

}

答案 1 :(得分:2)

通过主键搜索

find(),因此请将查询更改为:

$article = Article::where('article_id', $article_id)->first();