2013-07-09 62 views
2

我正在寫一個簡單的應用程序,它只依賴於幾條路線和視圖。我已經設置了一個總體佈局,並使用以下方法成功嵌套了一個模板。Laravel 4:嵌套數據視圖內部佈局

routes.php文件

View::name('layouts.master', 'master'); 
$layout = View::of('master'); 

Route::get('/users', function() use ($layout) 
{ 
    $users = Users::all() 
    return $layout->nest('content','list-template'); 
}); 

master.blade.php

<h1>Template</h1> 
<?=$content?> 

列表的template.php

foreach($users as $user) { 
    echo $user->title; 
} 

我如何將查詢結果$ users放入我的主模板,然後放入list-temple.php?

感謝

回答

7

->nest允許數據數組的第三個參數:

Route::get('/users', function() use ($layout) 
    { 
     $users = Users::all() 
     return $layout->nest('content','list-template', array('users' => $users)); 
    }); 

而且在master.blade.php文件 - 它改成這樣:

<h1>Template</h1> 
@yield('content') 

列表-template.blade.php < - 注意刀片的文件名稱:

@extends('layouts.master') 

@section('content') 
<?php 
    foreach($users as $user) { 
    echo $user->title; 
    } 
?> 
@stop 
+0

非常感謝。但是,我現在有以下錯誤。 「傳遞給Illuminate \ View \ View :: nest()的參數3必須是給定類型數組的對象,在routes.php中調用」 – Tom

+0

我已經編輯它來傳遞一個數組作爲第三個參數而不是一個對象,這應該可以解決這個錯誤 – fideloper

+1

其實編輯需要同行評審。您可以在'nest()'方法的第三個參數中將'$ users'更改爲'array('users'=> $ users)':'return $ layout-> nest('content','list-template' ,數組('users'=> $ users));' – fideloper