在添加laravel 4.2之前,检查数据库中是否已经存在名称



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'
);

最新更新