douping1825
2015-05-31 09:14
浏览 265
已采纳

Laravel 5将数据库查询从控制器传递到视图

I'm new to Laravel 5 and MVC frameworks in general. I having trouble getting results from a database query and passing it to my blade view. Here is what I have for a controller function ...

public function show(Project $project)
{
$technologies = DB::select('select * from technologies where id = ?', [$project->technology_id]);
return view('projects.show', compact('project','technologies'));
}

and my view is ...

@section('content')
   <h2>{{ $project->name }}</h2>

    @if ( !technologies() )
        no technologies.
    @else
        <ul>
            @foreach( $technologies as $technology )
                <li><a href="#">{{ $technology->slug }}</a></li>
            @endforeach
        </ul>
    @endif
@endsection

Thanks for your help

图片转代码服务由CSDN问答提供 功能建议

我是Laravel 5和MVC框架的新手。 我无法从数据库查询中获取结果并将其传递到我的刀片视图。 以下是我对控制器功能的了解...

 公共函数show(Project $ project)
 {
 $ technologies = DB :: select('select * 来自技术,其中id =?',[$ project-&gt; technology_id]); 
return view('projects.show',compact('project','technologies')); 
} 
  <  / pre> 
 
 

我的观点是......

  @section('content')
&lt; h2&gt; {{$ project-&gt  ; name}}&lt; / h2&gt; 
 
 @if(!technologies())
无技术。
 @else 
&lt; ul&gt; 
 @foreach($ technologies as $ technology)
&lt  ; li&gt;&lt; a href =“#”&gt; {{$ technology-&gt; slug}}&lt; / a&gt;&lt; / li&gt; 
 @endforeach 
&lt; / ul&gt; 
 @endif 
  @endsection 
   
 
 

感谢您的帮助

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

  • douxin8749 2015-05-31 09:35
    最佳回答

    controller

    public function show(Project $project)
    {
        $technologies = DB::table('technologies')
            ->select('*')
            ->where('id', $project->technology_id)
            ->get(); // you were missing the get method
    
        return view('projects.show', compact('project', 'technologies'));
    }
    

    View

    This will not work in your view: @if ( !technologies() )

    @section('content')
    
    <h2>{{ $project->name }}</h2>
        @if($technologies)
            <ul>
                @foreach($technologies as $technology)
                    <li><a href="#">{{ $technology->slug }}</a></li>
                @endforeach
            </ul>
        @else
            <p>no technologies.</p>
        @endif
    @stop
    

    Also, if you're interested in a cleaner way to loop through your data or show a 'no data' warning using blade check out this article which uses blade's @each https://laravel-news.com/2014/09/laravel-blade/

    评论
    解决 无用
    打赏 举报
查看更多回答(1条)

相关推荐 更多相似问题