【问题标题】:Check if name already exist in database before adding in laravel 4.2在添加 laravel 4.2 之前检查名称是否已存在于数据库中
【发布时间】: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');
    }
}

我需要检查数据库中是否已经存在该名称;我怎样才能做到这一点?

我可以在控制器中声明一个新函数吗?请帮忙。

【问题讨论】:

  • 您可以在您的规则中验证
  • 让字段在数据库结构中唯一如何?然后在尝试再次插入相同名称时,您将收到“重复索引”消息。

标签: php database laravel-4


【解决方案1】:

您可以在规则中验证这一点:

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

【讨论】:

  • 谢谢大家!赞赏! :)
  • 这可能是一个绿色检查? :D
猜你喜欢
  • 1970-01-01
  • 2020-08-14
  • 1970-01-01
  • 1970-01-01
  • 2021-10-16
  • 1970-01-01
  • 1970-01-01
  • 2010-12-21
  • 1970-01-01
相关资源
最近更新 更多