2017-02-16 98 views
0

我正在使用laravel 5.3 我有一个响应式导航菜单,当我点击域时,它显示了我已经在数据库中拥有的所有域,然后当我点击其中一个域时,我就可以获得相应的项目。如何显示/隐藏链接点击领域?

现在,我希望当我点击项目时,它会在表格中显示所有相应的数据。但是,这就是我得到:

这是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条款我表格之前添加只是为了测试,但我需要改变这一点。我希望能够以手动方式显示每个项目的数据。我也想知道如何在点击链接时显示和隐藏每个项目的信息。 正如你可以在index.blade.php看到的那样,这是因为我已经知道项目的名字了,我做了if (($project->intitule)=="Title")elseif(($project->intitule)=="Project2")但是,实际上我在数据库中有很多项目。我如何能够显示所有的项目,然后当我点击其中一个,怎样让这个特定的项目

+0

如果你想点击特定的项目ID并显示关于这个项目的信息“不刷新页面”,你可以使用AJAX。否则,如果你只想显示所有数据,请尝试在其他循环foreach中插入循环foreach –

回答

1

控制器

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

谢谢你的回答。我试过这个,但是,我得到这个错误: ErrorException在Collection.php行1320: 未定义偏移量:4(查看:C:\ Program Files文件(x86)\ EasyPHP-Devserver-16.1 \ eds-www \ PC \ resources \ views \ projects \ index.blade.php) – Naj

+0

试试这个,它返回多少结果? $ test = count($ projects); –

+0

我应该在哪里添加这个? – Naj