Вызов неопределенного метода Illuminate \ Database \ Query \ Builder :: with () - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь отобразить название категории, но получаю такую ​​ошибку:

BadMethodCallException
Call to undefined method Illuminate\Database\Query\Builder::with()

AdminController. php

public function gamelist()
{
    $categories = Category::all();
    $home = DB::table('products')->with(['categories']);
    return view('admin.gamelist', ['categories' => $categories, 'home' => $home, 'mode' => 'admin']);
}

Product. php

class Product extends Model
{
    public function categories()
    {
        return $this->belongsTo('App\Category', 'category_id');
    }
}

gamelist.blade. php

@foreach ($homes as $home)
    <tr>
      <td>{{ $home->id }}</td>
      <td>{{ $home->name }}</td>
      <td>{{ $home->categories->name}}</td>
      <td>{{ $home->price }} €</td>

Кто-нибудь может мне помочь? Спасибо

1 Ответ

2 голосов
/ 26 мая 2020

with используется для загрузки отношений Eloquent. Вызвав DB::table, вы решили использовать построитель запросов, а этот не может использовать отношения Eloquent.

Вы должны заменить

$home = DB::table('products')->with(['categories']);

на

$home = Product::with('categories')->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...