将几个变量传递给 blade 视图

Passing several variables to blade view

我正在使用 Laravel 5.5 并且正在加载我的数据,如下所示:

public function details($id)
{

    $instrument = Instruments::join('revisions', 'revisions.id', '=', 'instruments.revisions_id')
        ->where([
            ['revisions.revision_status', '=', '1'],
            ['instruments.id', '=', $id],
        ])
        ->orderBy('instruments.name')
        ->get();

    $team = Team::join('instruments', 'teams.instruments_id', '=', 'instruments.id')
        ->join('revisions', 'revisions.id', '=', 'teams.revisions_id')
        ->where([
            ['revisions.revision_status', '=', '1'],
            ['instruments.id', '=', $id],
        ])
        ->orderBy('instruments.name')
        ->get();


    return view('details')->with('instrumentUnderEdit', $instrument)->with('teamUnderEdit', $team);
}

但是,在我看来,我收到以下错误:

ErrorException thrown with message "Property [image] does not exist on this collection instance. (View: C:\Users\admin\Desktop\Projects\demo_laravel_screener\resources\views\details.blade.php)"

blade 文件有以下变量:

                <img style="height: 32px; width: 32px;" src="{{ asset('images')}}/{{ $instrumentUnderEdit->image }}" /> {{ $instrumentUnderEdit->name }}

对于我收到错误的原因有什么建议吗?我是否将变量错误地加载到视图中?

感谢您的回复!

由于 get() 给你 collection 个对象,而不是一个,你应该修改代码:

使用->first()代替->get()

这将为您提供具有所需属性的单个对象。