Laravel 4.2新手到!在我的控制器
中有这段代码public function store()
{
//
$rules = array(
'name' => 'required|min:2|max:20|regex:/^[a-zA-Z0-9-s]+$/',
'stock' => 'required|numeric|min:1',
'origin' => 'required|min:5|max:200'
);
$validator = Validator::make(Input::all(), $rules);
// process the login
if ($validator->fails()) {
return Redirect::to('weapons/create')
->withErrors($validator)
->withInput(Input::except('password'));
} else {
// check first if the name exists already then store
$weapon = new Weapon;
$weapon->name = Input::get('name');
$weapon->stock = Input::get('stock');
$weapon->origin = Input::get('origin');
$weapon->save();
// redirect
Session::flash('message', 'Successfully created nerd!');
return Redirect::to('create');
}
}
我需要检查这个名字是否已经在数据库中存在;我该怎么做呢?
我可以在控制器中声明一个新的函数吗?请帮助。
你可以在你的规则中验证:
$rules = array(
'name' => 'required|min:2|max:20|regex:/^[a-zA-Z0-9-s]+$/|exists:TableName,name',
'stock' => 'required|numeric|min:1',
'origin' => 'required|min:5|max:200'
);