使用压缩

时间:2017-05-16 07:04:36

标签: laravel

我在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传递给视图以及如何在视图中访问每个视图?

4 个答案:

答案 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