Laravel 4:仅获取具有相关模型的模型

时间:2014-01-22 11:19:05

标签: php model laravel laravel-4 eager-loading

我想仅在存在特定相关模型的情况下检索模型,例如

$posts = Post::has('comment')->get();

虽然相反,但工作正常:

$comments = Comment::has('post')->get();

我收到以下错误:

Has method invalid on "belongsTo" relations.

基本上我想要这样做的原因是,在特殊情况下,有些情况下,当我在视图中调用相关模型时,该模型可能没有相关模型存在(即使它应该)有时由于数据不良在数据库等....

{{ $jobApplication->job->title }}
当jobApplication没有工作时,

显然会出现以下错误:

Trying to get property of non-object

1 个答案:

答案 0 :(得分:0)

这种情况会导致,当您的数据库存在1->n关系时,n部分可能 多个与之相关的注册。但是,反过来说是不一样的。 post可能有n个评论,但评论belongs to只有一个帖子。因此,方法has('model')不适用于这种情况。

但是,如果设置了变量,那么问题的解决方案就会变得健全。尝试在控制器上执行此操作。

希望有所帮助!