0

В моем контроллереОшибка Query Builder Регистрация в Laravel 5.3

$thread = DB::table('threads') 
     ->join('users', 'users.id', '=', 'threads.user_id') 
     ->select('users.name') 
     ->orderBy('threads.id', 'DESC') 
     ->get(); 

return view('thread.index', compact('thread')); 

В моей index.blade

@foreach($thread as $item) 
        <td> {{ $item->thread }} </td> 
        <td> {{ $item->deskripsi }} </td> 
        <td> <p> Oleh : {{ $item->user_id }}</p> </td> 
         <td> {{ $item->created_at->diffForHumans() }} </td> 

    @endforeach    

и ошибок

Undefined property: stdClass::$thread (View: C:\xampp\htdocs\Aplikasi_Kelas_Server\resources\views\thread\index.blade.php) 

Есть какие-либо решения? Я хочу показать user_id стать именем в таблице пользователей

+0

Можете ли вы показать нам содержимое '$ thread'? – Jerodev

+0

Вы на самом деле не используете 'Eloquent' здесь. –

+0

да, извините. Его Query Builder. – Feboy

ответ

2

Вы вызываете некоторое свойство, как thread, deskripsi

<td> {{ $item->thread }} </td> 
<td> {{ $item->deskripsi }} </td> 

Но вы не выбрали его по вашему запросу. вы выбираете только name !! Поэтому добавьте дополнительный столбец в свой запрос, например:

$thread = DB::table('threads') 
     ->join('users', 'users.id', '=', 'threads.user_id') 
     ->select('users.name', 'threads.thread', 'threads.deskripsi') 
     ->orderBy('threads.id', 'DESC') 
     ->get(); 
+0

спасибо, что он работает! Я только меняю users.name становятся пользователями. * – Feboy

+0

просто будьте осторожны, иногда у вас может быть одинаковое имя столбца в обеих таблицах, а затем с wild card (*) вы получите ошибку. например, если у пользователей есть столбец 'name', а в потоках также есть столбец с именем' name', а затем 'users. *, threads. *' будет вызывать ошибку. – Atiqur

0

Это зависит от отношений, которые вы определили в своих моделях. если у пользователей есть потоки, тогда вы должны просто найти нужных пользователей и отправить их клиенту с компактным. Используйте эту функцию в модели пользователя

public function getThreads() 
    { 
     return $this->hasMany(Threads::class); 
    } 

и если ваши отношения правильно, вы должны быть в состоянии получить нити в вашем клинка с этим:

@foreach($users as $user) 
     @foreach($user->getThreads as $thread) 
        <td> {{ $thread->thread }} </td> 
        <td> {{ $thread->deskripsi }} </td> 
        <td> <p> Oleh : {{ $thread->user_id }}</p> </td> 
        <td> {{ $thread->created_at->diffForHumans() }} </td> 
     @endforeach 
@endforeach 
+0

oke спасибо за решение ур – Feboy