2017-02-16 17 views
0

私はlaravelを使用しています。5.3 ドメインをクリックすると、ナビゲーションメニューが表示されます。すでにDBに入っているすべてのドメインが表示され、これらのドメインの1つをクリックすると対応するプロジェクトが表示されます。リンクのクリックでフィールドを表示/非表示にするにはどうすればよいですか?

ここでは、プロジェクトをクリックすると、たとえば対応するすべてのデータが表に表示されます。しかし、これは私が取得していますものです:

これはProjectControllerです:

public function index(Request $request) 
{ 
    $projects1=DB::table('projects')->where('domain_id', '=', 1)->get(); 
    $projects2=DB::table('projects')->where('domain_id', '=', 2)->get(); 
    $projects3=DB::table('projects')->where('domain_id', '=', 3)->get(); 

    return view('projects.index',compact('projects', 'projects1', 'projects2', 'projects3')); 
} 

をし、これがindex.blade.phpです:

<div class="nav-side-menu"> 
    <div class="brand">Menu</div> 
    <i class="fa fa-bars fa-2x toggle-btn" data-toggle="collapse" data-target="#menu-content"></i> 
    <div class="menu-list"> 
    <ul id="menu-content" class="menu-content collapse out">   
     <li data-toggle="collapse" data-target="#products" class="collapsed active"> 
     <a href="#"><i class="fa fa-gift fa-lg"></i> Domains <span class="arrow"></span> </a> 
     </li> 
     <ul class="sub-menu collapse" id="products"> 
     <li data-toggle="collapse" data-target="#domain1_projet" class="collapsed active"> 
      <a href="#"><i class="fa fa-gift fa-lg"></i> Domain 1 <span class="arrow"></span></a> 
     </li> 
     <ul class="sub-menu collapse" id="domain1_projet"> 
      @foreach ($projects1 as $key => $project) 
      <li><a href="#">{{$project->title}}</a></li>      
      @endforeach 
      <table class="table table-bordered"> 
      <tr> 
      <th>No</th> 
      <th>title</th> 
      <th>code</th> 
      <th>domain_id</th> 
      </tr> 
      @foreach ($projects1 as $key => $project1) 
      <tr> 
       <td>{{ ++$i }}</td> 
       <td>{{ $project1->title }}</td> 
       <td>{{ $project1->code }}</td> 
       <td>{{ $project1->domain_id}}</td> 
      </tr> 
      @endforeach 
      </table> 
     </ul>        
     <li data-toggle="collapse" data-target="#domain2_projet" class="collapsed active"> 
      <a href="#"><i class="fa fa-gift fa-lg"></i> Domain 2 <span class="arrow"></span></a> 
     </li> 
     <ul class="sub-menu collapse" id="domaine2_projet"> 
      @foreach ($projects2 as $key => $project) 
      <li><a href="#">{{$project->title}}</a></li>      
      @endforeach      
     </ul>     
     </ul> 
    </ul> 
    </div> 
</div> 

@If句Iテーブルをテストする前に追加しましたが、変更する必要があります。各プロジェクトのデータを手動で表示することはできません。また、リンクをクリックすると、各プロジェクトの情報を表示したり非表示にする方法も知りたいと思っています。 index.blade.phpにあるように、私はすでにif (($project->intitule)=="Title")elseif(($project->intitule)=="Project2")の名前を知っていたからです。しかし、実際にはデータベースに多くのプロジェクトがあります。私は特定のプロジェクト

+0

特定のプロジェクトIDをクリックし、このプロジェクトに関する情報を表示したい場合は、「ページを更新せずに」AJAXを使用できます。そうでない場合は、すべてのデータのみを表示したい場合は、ループをforeach内に挿入してください。foreach –

答えて

1

CONTROLLER

public function index(Request $request) 
{ 
    $projects=DB::table('projects')->get(); 
    return view('projects.index',compact('projects')); 
} 

VIEW

のテーブル含む情報を取得することができますどのように、それらのいずれかをクリックしたとき、私はその後、すべてのプロジェクトを表示し、することができますか
<div class="nav-side-menu"> 
    <div class="brand">Menu</div> 
    <i class="fa fa-bars fa-2x toggle-btn" data-toggle="collapse" data-target="#menu-content"></i> 
    <div class="menu-list"> 
    <ul id="menu-content" class="menu-content collapse out">   
     <li data-toggle="collapse" data-target="#products" class="collapsed active"> 
     <a href="#"><i class="fa fa-gift fa-lg"></i> Domains <span class="arrow"></span> </a> 
     </li> 


     <ul class="sub-menu collapse" id="products"> 
     @for ($i = 0; $i < count($projects); $i++) 
     <li data-toggle="collapse" data-target="#domain1_projet{{$i}}" class="collapsed active"> 
      <a href="#"><i class="fa fa-gift fa-lg"></i> Domain {{$projects[$i]->domain_id}} <span class="arrow"></span></a> 
     </li> 


     <ul class="sub-menu collapse" id="domain1_projet{{$i}}"> 

      <li><a href="#">{{$projects[$i]->title}}</a></li>      

      <table class="table table-bordered"> 
      <tr> 
      <th>No</th> 
      <th>title</th> 
      <th>code</th> 
      <th>domain_id</th> 
      </tr> 

      <tr> 
       <td>{{ $i }}</td> 
       <td>{{ $projects[$i]->title }}</td> 
       <td>{{ $projects[$i]->code }}</td> 
       <td>{{ $projects[$i]->domain_id}}</td> 
      </tr> 

      </table> 
     </ul>        
     @endfor 



     </ul> 


    </ul> 
    </div> 
</div> 

お試しください!返品のエラーがあれば教えてください!

+0

ありがとうございます。私はこれを試しましたが、このエラーが表示されています: Collection.php行のエラー1320: 未定義オフセット:4(表示:C:\ Program Files(x86)\ EasyPHP-Devserver-16.1 \ eds-www \ PC \ resources \ views \ projects \ index.blade.php) – Naj

+0

これを試して、返される結果はいくつですか? $テスト=カウント($プロジェクト); –

+0

私はこれをどこに追加しますか? – Naj

関連する問題