2017-05-16 1 views
0

Ich habe eine Methode in Laravel, die Daten an Ansichten übergeben soll. Ich habe Daten in Variablen, Arrays und Objekten.Übergeben von Variablen, Arrays und Objekten zum Anzeigen mit kompakten

Dies ist die Methode

public function view($id){ 
    $id = request()->segment(2); 
    $items = Role::all(['name', 'display_name']); 
    return view('text.ServicesEditUser',compact('items',$items)); 
    } 

ich diesen auch Code

$uid = Auth::id(); 
    $settings = Settings::where('user_id','=',Auth::id())->first(); 
    return view('text.settings',compact('settings')); 

, die ich oben, um den Code zu übernehmen wollen, müssen. Sobald ich die Einstellungen an die Ansicht übergeben habe, kann ich beispielsweise auf Daten wie $settings->language zugreifen. Ich möchte auch eine Variable, die

$title = 'degrees of tilt'; 

an das erste Code-Schnipsel ist die kompakte Methode übergeben.

Dies ist die Methode jetzt mit allen Daten i zu der Ansicht übergeben wollen

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

Wie ich $settings tun passieren, $title, $users, $items zur Ansicht und wie ich jeweils im Hinblick auf Zugriff haben?

Antwort

0

compact() braucht nicht Dollar beim Start.

Sie können den Code nur hinzufügen sehen von:

$title = 'My title'; 
$settings = ['my', 'settings',]; 

return view('text.settings', compact('title', 'settings')); 

Auf jeden Fall können Sie Ihre Variablen von Array übergeben:

$settings = ['my', 'settings',]; 

return view('text.settings', [ 
    'title' => 'Title', 
    'settings' => $settings, 
]); 

Die letzte Option ist with() Methode:

return view('text.settings') 
    ->with('settings', $settings) 
    ->with('title', 'My title'); 

Erhalten Sie Zugriff auf Variablen in der Ansicht von {{ $title }} und

@foreach ($settings as $sett) 
    {{ $sett }} 
@endforeach 
0

Wenn Sie eine Ansicht zurückgeben, können Sie mehrere Variablen wie diese übergeben.

return view('text.ServicesEditUser') 
    ->with(compact('items',$items)) 
    ->with('variable2', $variable2); 

Sehen Sie hier die Dokumentation über diese - Laravel Views.

0

In Controller:

$variable = "Var"; 
$array = ["first" => "a", "second" => "b"]; 
$object = (object) $array; 
return view('view',compact(['variable', 'array', 'object'])); 

In Ansicht:

{{$variable}} 
{{$array['first']}} 
{{$object->first}} 
0

Dies funktioniert auch

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

in der Klinge Ansicht

<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 

In den Einstellungen

@if($settings) 
$settings->language 
@endif 
Verwandte Themen