我在laravel中有一个方法,旨在将数据传递给视图。我有变量,数组和对象的数据。
这是方法
public function view($id){
$id = request()->segment(2);
$items = Role::all(['name', 'display_name']);
return view('text.ServicesEditUser',compact('items',$items));
}
我也有这段代码
$uid = Auth::id();
$settings = Settings::where('user_id','=',Auth::id())->first();
return view('text.settings',compact('settings'));
我想要合并到上面的代码中。一旦我将设置传递给视图,我就可以访问$settings->language
之类的数据。我还想传递一个
$title = 'degrees of tilt';
到第一个代码段的紧凑方法。
现在这是我想要传递给视图的所有数据的方法
public function view($id){
$id = request()->segment(2);
$title = 'Tilt in degrees';
$settings = Settings::where('user_id','=',Auth::id())->first();
$users = User::where('id','=',$id)->get();
$items = Role::all(['name', 'display_name']);
return view('text.ServicesEditUser',compact('items',$items));
}
如何将$settings
,$title
,$users
,$items
传递给视图以及如何在视图中访问每个视图?
答案 0 :(得分:0)
compact()
一开始并不需要美元。
您只需添加代码即可按以下方式查看:
$title = 'My title';
$settings = ['my', 'settings',];
return view('text.settings', compact('title', 'settings'));
无论如何,您可以通过数组传递变量:
$settings = ['my', 'settings',];
return view('text.settings', [
'title' => 'Title',
'settings' => $settings,
]);
最后一个选项是with()
方法:
return view('text.settings')
->with('settings', $settings)
->with('title', 'My title');
通过{{ $title }}
和
@foreach ($settings as $sett)
{{ $sett }}
@endforeach
答案 1 :(得分:0)
返回视图时,您可以传递多个这样的变量。
return view('text.ServicesEditUser')
->with(compact('items',$items))
->with('variable2', $variable2);
请在此处查看有关此内容的文档 - Laravel Views。
答案 2 :(得分:0)
在控制器中:
$variable = "Var";
$array = ["first" => "a", "second" => "b"];
$object = (object) $array;
return view('view',compact(['variable', 'array', 'object']));
在视图中:
{{$variable}}
{{$array['first']}}
{{$object->first}}
答案 3 :(得分:0)
这也有效
public function view($id){
$id = request()->segment(2);
$title = 'Degrees of tilt';
$settings = Settings::where('user_id','=',Auth::id())->first();
$users = User::where('id','=',$id)->get();
$items = Role::all(['name', 'display_name']);
return view('text.ServicesEditUser', compact('title', 'settings','users','items'));
}
刀片视图中的
<p>{{$title}}</p>
{{$settings->language}}
@foreach($items as $item)
<option value="{{$item->name}}">{{$item->display_name}}</option>
@endforeach
@foreach($users as $user)
<option value="{{$user->id}}">{{$user->email}}</option>
@endforeach
在设置中
@if($settings)
$settings->language
@endif