laravel的位置和发现之间有什么区别

时间:2014-11-29 18:59:38

标签: php sql laravel

当我写这个$thread = Thread::find($id);然后我写{{$thread->title}}它给了我线程的标题,但是当我写$thread = Thread::where('id','=',$id);然后我写{{$thread->title}}它给了我一个错误。为什么会发生这种情况?

2 个答案:

答案 0 :(得分:1)

你应该写:

$thread = Thread::where('id','=',$id)->first();

获得一列,否则laravel会将其理解为数组。

答案 1 :(得分:1)

在使用where时,需要调用get()(或其任何变体)方法来执行实际查询。

   Thread::where('id','=',$id)->get();

否则Thread::where('id','=',$id)只会为您提供一个雄辩的查询构建器实例。

另一方面,

find()将自动运行查询,无论您想要找到什么,您都可以做各种有用的东西(例如orderBy,paginate等),你可以很容易使用查询构建器。