【发布时间】:2023-03-11 20:31:01
【问题描述】:
我在我的应用程序中使用 laravel4 表单,用户可以在其中将一些数据通过 post 表单存储到数据库。当我发布空白表单时,出现错误 NotFoundHttpException。 我在 HomeController 中有
public function create()
{
$validation = Producer::validate(Input::all());
if ($validation->fails()) {
return Redirect::to('home/create')->withErrors($validation->errors());
} else {
$producer = new Producer;
$producer->title = Input::get('title');
$producer->body = Input::get('body');
$producer->url = Input::get('url');
$producer->save();
return Redirect::to('/');
}
}
型号
class Producer extends Eloquent {
public static $rules = array(
'title'=>'required|min:5',
'body'=>'required|min:10',
'url' => 'required'
);
public static function validate($data) {
return Validator::make($data, static::$rules);
}
并查看
@if($errors->has())
<ul>
{{ $errors->first('title', '<li>:message</li>') }}
{{ $errors->first('body', '<li>:message</li>') }}
{{ $errors->first('url', '<li>:message</li>') }}
</ul>
@endif
{{ Form::open(array('url' => 'create')) }}
<p>{{ Form::label('title', 'Název služby') }}</p>
<p>{{ Form::text('title') }}</p>
<p>{{ Form::label('body', 'Popis') }}</p>
<p>{{ Form::textarea('body') }}</p>
<p>{{ Form::label('url', 'Adresa webu') }}</p>
<p>{{ Form::textarea('url') }}</p>
<p>{{ Form::submit('Přidat',array('class' => 'btn btn-default')) }}</p>
{{ Form::close() }}
但是当我运行这个脚本时,我得到错误NotFoundHttpException。我的路由代码哪里有问题?
我的路线
Route::get('/', 'HomeController@showWelcome');
Route::get('/detail/{id}', 'HomeController@detail');
Route::get('/add', 'HomeController@add');
Route::post('/create', 'HomeController@create');
现在我有
Route::get('/', 'HomeController@showWelcome');
Route::get('/detail/{id}', 'HomeController@detail');
Route::get('/add', 'HomeController@add');
Route::post('/create', 'HomeController@create');
Route::get('/create', 'HomeController@create');
和
if ($validation->fails()) {
return Redirect::to('/create')->withErrors($validation);
} else {
还是一样的问题
解决了我有很大的错误我重定向到坏路由我需要使用 HomeController@add 因为这会为表单创建视图
【问题讨论】:
-
能不能把routes.php中的相关路由贴出来
标签: forms validation error-handling laravel laravel-4