我试图从items
到达CategoriesController.php
表,但我在Laravel(5.3)Debugbar中看到,我的查询未执行。为什么?这是我的代码:
# Http/Controllers/CategoriesController.php
use App\Category;
use App\Item;
use App\Http\Requests;
use App\Http\Controllers\Controller;
namespace App\Http\Controllers;
use Request;
class CategoriesController extends Controller {
public function show($id) {
$items = \App\Item::where('id', $id); # <- This is not executed!
$category = \App\Category::find($id);
return view('categories.show', compact('category', 'items'));
}
}
答案 0 :(得分:5)
MyModule.Repo.all(MyModule.User)
正在链接查询构建器,但是您永远不会执行请求。
::where()
或者,如果你想要每场比赛:
::where('id', $id)->first(); //if you only want the first result
//shorthand would be ::find($id);
答案 1 :(得分:1)
$items = \App\Item::where('id', $id);
这一行正准备一个Eloquent执行的查询,但你实际上从未执行过它。
尝试运行以下命令来执行查询并获取所有结果。
$items = \App\Item::where('id', $id)->get();
答案 2 :(得分:1)
您需要使用get()
或first()
或paginate
或pluck()
或find()
等来执行查询。在这种情况下,您希望使用first()
方法:
\App\Item::where('id', $id)->first();
或者只是:
\App\Item::find($id);