我有一个AJAX应用程序,我正在使用Laravel 4。
我通过绑定表单,序列化和返回来发布表单。服务器的响应是JSON,因此可以给出更多的变量。
对于普通页面,我只需返回
View::make('something')->render();
但是当发布并返回错误时,系统会失败。我很想做像
这样的事情Redirect::back()->withInput()->withErrors($validation->messages())->render();
这失败了,我能理解。
所以我试过
View::make('something')->withInput()->withErrors($validation->messages())->render();
这也看不到View::make
没有函数withInput
。
所以为了解决这个问题,我使用了
{{ Form::input('email', 'email', (isset($input['email'])) ? e($input['email']) : null, array('class' => 'form-control validation', 'placeholder' => Lang::get('global.placeholder.email'))); }}
但我不想为看到丑陋的值做if语句(即使在默认情况下呈现为空时也接受$ errors)。
所以问题是:有没有办法用输入渲染视图/重定向。
答案 0 :(得分:0)
如前所述,它将成为一个典范:
Class DefaultValues {
// set default values or define inputs
public static $oInputs as array(
'email' => '',
'password' => '',
);
public function catchEmpty() {
if(Request::is_post()) {
foreach(self::$oInputs as $sInputKey => $sValue) {
Input::post($sInputKey) = (isset(Input::post($sInputKey)) ? Input::post($sInputKey) : $sValue;
}
}
if(Request::is_get()) {
foreach(self::$oInputs as $sInputKey => $sValue) {
Input::get($sInputKey) = (isset(Input::get($sInputKey)) ? Input::get($sInputKey) : $sValue;
}
}
}
}
通过这种方式,您可以保持刀片状态。没有改变到$输入。对我来说更好看,因为我懒惰。
只需使用:
View::make('something')->render();
Input::[something]([something]);
可以正常使用。但是你仍然不得不设置它。
请在需要时发表评论。