0

私のコントローラーで

$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 をテーブル users に名前として表示したい

4

2 に答える 2

2

のようなプロパティを呼び出していますthreaddeskripsi

<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();
于 2017-02-07T12:09:03.220 に答える
0

モデルで定義した関係によって異なります。ユーザーにスレッドがある場合は、必要なユーザーを取得し、コンパクトでブレードに送信するだけです。User モデルでこの関数を使用します

 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  
于 2017-02-07T12:08:24.627 に答える