为什么我的查询不在控制器中执行?

时间:2017-01-19 10:27:29

标签: laravel

我试图从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'));

  }

}

3 个答案:

答案 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()paginatepluck()find()等来执行查询。在这种情况下,您希望使用first()方法:

\App\Item::where('id', $id)->first();

或者只是:

\App\Item::find($id);