我有三种型号
Photo
-id
-path_full
Person
-id
-name
Face
-id
-person_id //was people_id
-photo_id
我正在尝试从照片模型中访问人名
人脸模型:
public function photo()
{
return $this->belongsTo(Photo::class);
}
public function person()
{
return $this->belongsTo(Person::class);
}
照片模型:
public function faces()
{
return $this->hasMany(Face::class);
}
人物模型:
public function faces()
{
return $this->hasMany(Face::class);
}
在我的控制器中,我加载如下照片:
$photos = Photo::with('faces')->paginate();
在我的刀片模板中,我想访问照片中的人脸名称。我走了这么远
这是一张foreach的照片:
{{implode($photo->faces->pluck('people_id')->toArray(),', ')}}
我怎样才能得到这个人的名字呢?
解决方案
在我看来,我需要这一点,并注意到我对db to person_id的更改是如此的有说服力,可以实现它的魔力。
//Controller:
$photos = Photo::with('faces.person')->paginate();
//View:
@foreach($photo->faces as $face)
{{$face->person['name']}}
@endforeach
试着通过这样改变你的查询来得到脸的人:
Photo::with(['faces' => function($query) {$query->with('person')}])->paginate();
我不太清楚语法,但这就是如何在雄辩的模型中嵌套关系。写这篇文章的较短方法可能是:Photo::with('faces.person')-
这里提供了更多的信息。
您可以在照片模型上调用脸
的所有时间急切加载人
数据:
// Photo.php
public function faces()
{
return $this->hasMany(Face::class)->with('person');
}
或者,在查询中,您可以仅在此时对“急切加载”执行以下操作:
$photos = Photo::with('faces', 'faces.person')->paginate();
现在您可以像这样访问:
$photos->first()->faces->first()->person->name; // will print the name of the person of the first face of the first photo...
希望这个回答能有所帮助。
ThinkCMF支持所有ThinkPHP模型用法,其它使用方式请参考: http://www.kancloud.cn/manual/thinkphp/1727
问题内容: 是否可以在Scrapy管道中访问django模型,以便将已抓取的数据直接保存到模型中? 我已经看到了,但是我真的不知道如何设置它吗? 问题答案: 如果还有其他人遇到相同的问题,这就是我解决的方法。 我将其添加到我的scrapy settings.py文件中: 注意:上面的路径是到你的django项目文件夹,而不是settings.py文件。 现在,你将可以在scrapy项目中完全访问d
问题内容: 我已经阅读了有关此问题的主题,例如:[\AngularJS中未更新视图,\但我仍然不明白如何在我的简单示例中应用它。 我有这个功能: 当代码中的其他地方更新时(用户单击,交互,发送XHR请求时),它不会更新我的视图。我知道我需要使用$apply做些事情,但我不知道在哪里以及如何做。 有人可以向我解释如何针对这个简单用例解决此问题吗? 我的模型看起来像这样(如果这个问题是必要的)-它里面
我已将以下代码放在脚本文件的顶部 现在我可以导入我的django应用程序并运行小片段(主要是测试东西) 我想导入通过 我知道https://github.com/django-extensions/django-extensions运行它会自动导入所有型号和更多型号。 我在看他们的代码。不确定我是否能理解。 https://github.com/django-extensions/django-e
问题内容: 我试图弄清楚Angular的工作原理,并在模型更改时无法更新视图。 的HTML JS http://jsfiddle.net/N2G7z/ 有任何想法吗? 问题答案: 正如上面提到的Ajay beniwal一样,您需要使用Apply来开始消化。
问题内容: 我正在尝试使用包含Latex样式方程式的AngularJS双向绑定文本。我想调用MathJax格式化方程式,但是我不确定在AngularJS完成更改模型后确保调用MathJax的最佳方法。我想我需要回调。这是我的JavaScript: } 这是我的HTML: 小提琴在这里:http : //jsfiddle.net/LukasHalim/UVjTD/1/。您会注意到,即使您单击两次更新
我的视图中有一个树查看器,它从标准的Ecore编辑器中监听EMF模型,并用它做进一步的事情。我已经注册了一个选择监听器,它检查所选元素是否是树查看器需要作为输入的类型。因此,问题是,如果模型中有任何变化(例如,向现有元素添加新元素或新信息等),树查看器仅在用户更改选择时才显示更改后的模型,即单击任何模型元素等。 但是我需要做的是,如果底层模型发生变化,树查看器将直接得到通知,并显示新的模型元素,而
我现在迷路了。