错误查询生成器加入 Laravel 5.3
Error Query Builder Join in 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 显示成为 table 用户中的名字
这取决于您在模型中定义的关系。如果用户有线程,那么你应该只检索你想要的用户并将其发送到 blade 紧凑。在您的用户模型中使用此功能
public function getThreads()
{
return $this->hasMany(Threads::class);
}
如果你的关系是正确的,你应该能够在你的 blade 中获得线程:
@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
您正在调用一些 属性,例如 thread
、deskripsi
<td> {{ $item->thread }} </td>
<td> {{ $item->deskripsi }} </td>
但是您的查询没有select它。你只有 select 是 name
!!因此,在您的查询中添加附加列,如 -
$thread = DB::table('threads')
->join('users', 'users.id', '=', 'threads.user_id')
->select('users.name', 'threads.thread', 'threads.deskripsi')
->orderBy('threads.id', 'DESC')
->get();
在我的控制器中
$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 显示成为 table 用户中的名字
这取决于您在模型中定义的关系。如果用户有线程,那么你应该只检索你想要的用户并将其发送到 blade 紧凑。在您的用户模型中使用此功能
public function getThreads()
{
return $this->hasMany(Threads::class);
}
如果你的关系是正确的,你应该能够在你的 blade 中获得线程:
@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
您正在调用一些 属性,例如 thread
、deskripsi
<td> {{ $item->thread }} </td>
<td> {{ $item->deskripsi }} </td>
但是您的查询没有select它。你只有 select 是 name
!!因此,在您的查询中添加附加列,如 -
$thread = DB::table('threads')
->join('users', 'users.id', '=', 'threads.user_id')
->select('users.name', 'threads.thread', 'threads.deskripsi')
->orderBy('threads.id', 'DESC')
->get();