【发布时间】:2015-12-16 10:21:18
【问题描述】:
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');
}
}
我需要检查数据库中是否已经存在该名称;我怎样才能做到这一点?
我可以在控制器中声明一个新函数吗?请帮忙。
【问题讨论】:
-
您可以在您的规则中验证
-
让字段在数据库结构中唯一如何?然后在尝试再次插入相同名称时,您将收到“重复索引”消息。