Laravel视图中的未定义变量

时间:2014-02-20 21:22:19

标签: select view laravel

我已经尝试了几个小时的解决方案,我真的不明白为什么它不起作用。

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?

1 个答案:

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

}