2016-08-17 8 views
0

のいずれかのテーブルから他の列のデータを表示するif文で2つの異なるテーブルからの二つの異なるカラムの比較などのいずれかのテーブルlaravelで5.2は、2つの異なるテーブルから二つの異なる列を比較し、laravel 5.2

コントローラから他の列のデータを表示します:

public function labDetails(){ 
    $users = DB::table('users')->lists('lab_name'); 
    $labdetails = Labdetails2::paginate(20); 
    return View('labdetails') 
      ->with('users', $users) 
      ->with('labdetails', $labdetails); 
} 

ここで私はlabdetails2テーブルの「lab_name」欄で、彼らはショーにlabdetailsテーブルからのみ関連データに一致した場合、ユーザーテーブルの「lab_name」列にマッチします。

N.B.私はテーブル間の関係がない古いデータベースを使っています。

ビューのように:

<form action="" method=""> 
    <select name="state" onchange="getValue(this)"> 
     <option value="">Select Lab</option> 
     @foreach ($users as $key => $user) 
     <option value="{{ $user }}">{{ $user }}</option> 
     @endforeach 
    </select> 
    <input type="submit" value="Submit"> 

     @foreach ($labdetails as $labdetail) 
     <tbody> 
     <tr> 
      <td>{{ $labdetail->sl }}</td> 
      <td>{{ $labdetail->lab_name }}</td> 
      <td>{{ $labdetail->pc_name }}</td> 
      <td>{{ $labdetail->pc_ip }}</td> 
      <td>{{ $labdetail->mac1 }}</td> 
      <td>{{ $labdetail->assetno }}</td> 
      <td>{{ $labdetail->pc_type }}</td> 
      <td>{{ $labdetail->processor }}</td> 
      <td>{{ $labdetail->motherboard }}</td> 
      <td>{{ $labdetail->ram }}</td> 
      <td>{{ $labdetail->hdd }}</td> 
      <td>{{ $labdetail->location }}</td> 
      <td>{{ $labdetail->department }}</td> 
      <td>{{ $labdetail->entrydate }}</td> 
      <td>{{ $labdetail->comment }}</td> 
     </tr> 
     </tbody> 
     @endforeach 

は、私は、コントローラ&ビューで何をすべきか私を助けてください...

答えて

0

あなたが唯一の試合はその後、このよう

$users = DB::table('users')->lists('lab_name'); // this retrieves all lab_name as array. 

を記録取得することができます、一致のみを取得するlabdetails

$labdetails = Labdetails2::whereIn('lab_name',$users)->paginate(20); 
+0

本当にありがとうございます、selectIndexをリクエストしてからwhereIn()が実際に働いてくれました。 get()はうまく動作しましたが、いくつかのRouteCollection-> methodNotAllowed(array( 'POST'))エラーを提供するpaginate()エラーです。 –

0
DB::table('users') 
      ->join('labdetails2', 'users.lab_name', '=', 'labdetails2.lab_name') 
->select('labdetails2.lab_name', 'labdetails2.pc_name') 
->get() 

select()では、必要なフィールドを白くします。

ここで、labdetails2およびユーザーはテーブル名です。

+0

これまでのところ、このプロセスですべてのデータを取得できましたが、送信後にデータを照合したいと考えています。私の目標は 'users.lab_name'が提出されたときに、 'labdetails2.lab_name'のすべての一致したデータを表示することです。たとえば 'users.lab205' = 'labdetails2.lab205'の場合、 'labdetails2.lab205'のすべてのデータが表示されます。ビューについて少し助けが必要です。 –

0

このコードは最終的に私の仕事:

public function showLabDetails(Request $request){ 

    $q = $request -> request -> all(); 

    $labdetails = Labdetails2::whereIn('lab_name', $q)->get(); 

    return View('showlabdetails') 
      ->with('labdetails', $labdetails); 
} 

おかげでみんなに私を助けるため。

関連する問題