我已经尝试了几个小时的解决方案,我真的不明白为什么它不起作用。
routes.php文件
Route::get("/user/Session::get('theuser')/charname", array(
'as' => 'profile-character',
'uses' => 'ProfileController@dropDownList'
));
ProfileController.php
public function dropDownList() {
$list = Character::lists('char_name', 'char_dynasty');
return View::make('layout.profile')->with('character_options',$list);
}
profile.blade.php
<div class="selected_char">
<form action="{{ URL::route('profile-character') }}" method="get">
{{ Form::select('character', $character_options , Input::old('character')) }}
</form>
</div>
此代码抛出了$ character_options未定义的错误。我已经阅读过几十个像我一样做事并为他们工作的例子。也许这是Laravel 3?
答案 0 :(得分:0)
这在Laravel上不适用:
Route::get("/user/Session::get('theuser')/charname", array(
'as' => 'profile-character',
'uses' => 'ProfileController@dropDownList'
));
您的路线中无法拨打Session::get()
这样的电话,至少我知道这一点。您的路由将起作用,因为它是一个对路由有效的字符串,但Session :: get()永远不会真正用于该过程。
如果您确实点击了网址:
http://localhost/user/Session::get('theuser')/charname
你能拥有的是:
Route::get("/user/{user}/charname", array(
'as' => 'profile-character',
'uses' => 'ProfileController@dropDownList'
));
并且
public function dropDownList($user) {
$list = Character::lists('char_name', 'char_dynasty');
return View::make('layout.profile')->with('character_options',$list);
}