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

Laravel 5 passing database query from controller to view

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

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

我的观点是...

@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

感谢您的帮助

将您的查询重写为,

$technologies = DB::table('technologies')->where('id',$project->technology_id)->get();

控制器

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'));
}

查看

这在您看来不起作用:@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

此外,如果您对使用 blade 循环遍历数据或显示 'no data' 警告的更简洁方法感兴趣,请查看这篇使用 blade 的 @each https://laravel-news.com/2014/09/laravel-blade/[=14= 的文章]