【发布时间】:2020-09-27 16:55:23
【问题描述】:
在控制器中,我可以这样做:
$myentity = MyEntity::findOrFail($id);
$collection = MyEntity::where("field", "=", $myentity->value)->get();
这给了我一个 MyEntity 对象的集合...
dd($collection);
Collection {#331 ▼
#items: array:11 [▼
0 => MyEntity {#332 ▶}
1 => MyEntity {#333 ▶}
2 => MyEntity {#334 ▶}
3 => MyEntity {#335 ▶}
4 => MyEntity {#336 ▶}
5 => MyEntity {#337 ▶}
6 => MyEntity {#338 ▶}
7 => MyEntity {#339 ▶}
8 => MyEntity {#340 ▶}
9 => MyEntity {#341 ▶}
10 => MyEntity {#342 ▶}
]
}
我需要在 Model 类中实现一个方法,该方法返回完全相同的内容,但我没有让它正常工作。我尝试过这样的事情:
public function test()
{
return = DB::table("entity")->where("field", "=", $this->value)->get();
}
...
$myentity = MyEntity::findOrFail($id);
$collection = $myentity->test();
dd($collection);
Collection {#319 ▼
#items: array:10 [▼
0 => {#309 ▶}
1 => {#322 ▶}
2 => {#308 ▶}
3 => {#320 ▶}
4 => {#324 ▶}
5 => {#310 ▶}
6 => {#315 ▶}
7 => {#321 ▶}
8 => {#325 ▶}
9 => {#326 ▶}
]
}
我怎样才能得到相同的结果?
【问题讨论】:
-
你不能使用查询生成器,它不会给你模型......你必须使用模型来做查询,就像你在模型之外做的那样
标签: laravel collections eloquent