次のようにLaravelでリソースを設定しましたroutes.php
:
Route::resource('users', 'UsersController');
を作成しUsersController
、レイアウトを使用するように設定しました。
class UsersController extends BaseController {
protected $layout = 'layouts.default';
public function index()
{
$view = View::make('users.index');
$this->layout->title = "User Profile";
$this->layout->content = $view;
}
}
を使用してアクセスするとhttp://localhost/myapp/users/index
、次のエラーが表示されます。
Undefined variable: title
しかし、ルートを次のように手動で設定した場合:
Route::get('/users/index', array('as' => '/users/index', 'uses' => 'UsersController@index'));
それは正常に動作します。
なぜこれが起こるのか分かりますか?
編集:これらはビューです
default.blade.php
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>{{ $title }}</title>
<link rel="stylesheet" href="{{ asset('assets/css/style.default.css') }}" type="text/css" />
</head>
<body>
{{ $content }}
</body>
</html>
ユーザー/index.php
<div>
Some content ...
</div>