最近、Laravel を使い始めました。これまでのところ素晴らしいフレームワークです!しかし、私は質問があります。
次のようなレイアウト テンプレートを使用しています。
public $layout = 'layouts.private';
これは私の Base_Controller に設定されています:
public function __construct(){
//Styles
Asset::add('reset', 'css/reset.css');
Asset::add('main', 'css/main.css');
//Scripts
Asset::add('jQuery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js');
//Switch layout template according to the users auth credentials.
if (Auth::check()) {
$this -> layout = 'layouts.private';
} else {
$this -> layout = 'layouts.public';
}
parent::__construct();
}
ただし、別のコントローラーの関数にアクセスしようとすると、エラー例外が発生します。これは、ビューを呼び出すべきではありません。つまり、ユーザーがログインしようとしている場合です。
class Login_Controller extends Base_Controller {
public $restful = true;
public function post_index()
{
$user = new User();
$credentials = array('username' => Input::get('email'), 'password' => Input::get('password'));
if (Auth::attempt($credentials))
{
} else {
}
}
}
私が得るエラーは、パブリック $layout でさまざまな変数の内容を設定していないことです。しかし、この関数にはビューが必要ないため、Laravel にこの関数にレイアウトを含めないようにするにはどうすればよいでしょうか?
私自身がクロスした最善の解決策(これが悪い方法かどうかわかりませんか?)はunset($this -> layout);
、関数からpost_index()
...
public $layout
私の質問を要約すると、ビューが必要ない特定の関数に含めないように Laravel に指示するにはどうすればよいですか?
前もってありがとう、フィッシャー