Laravel Eloquent 验证插入异常?

Posted

技术标签:

【中文标题】Laravel Eloquent 验证插入异常?【英文标题】:Laravel Eloquent validation insert exception? 【发布时间】:2015-10-16 05:52:10 【问题描述】:

我创建了一个表单,用于在类别表中添加产品类别(例如糖产品或啤酒),每个用户都有自己的类别名称。

类别表包含idcategory_nameuserIdcreated_Atupdated_At 列。

我已经进行了验证,一切正常。但现在我希望每个用户都有一个唯一的 category_name。我在 phpMyAdmin 中创建了这个并在(category_nameuserId)上创建了一个唯一索引。

所以我的问题是:在填写表格时,让我们说您忘记并输入了两次类别......这个类别存在于数据库中,并且 eloquent 给我一个错误。我想就像在验证中一样,在我的情况下将我重定向到 /dash/warehouse 并说老兄你试图输入一个类别两次......请再考虑一遍......或者其他什么。我是 laravel 和 php 的新手,对我的语言感到抱歉,但知道为什么会发生这种情况以及我如何解决这个问题对我来说很重要。如果您需要更多东西,请查看我的控制器,我会给您。

class ErpController extends Controller
public function __construct()

    $this->middleware('auth');


public function index()

    return view('pages.erp.dash');


public function getWarehouse()

    $welcome = Auth::user()->fName . ' ' . Auth::user()->lName;
    $groups = Group::where('userId',Auth::user()->id)->get();
    return view('pages.erp.warehouse', compact('welcome','groups'));




public function postWarehouse(Request $request)

    $input = \Input::all();
    $rules = array(
        'masterCategory' => 'required|min:3|max:80'
    );
    $v = \Validator::make($input, $rules);
    if ($v->passes()) 
        $group = new Group;
        $group->group = $input['masterCategory'];
        $group->userId = Auth::user()->id;
        $group->save();
        return redirect('dash/warehouse');
     else 
        return redirect('dash/warehouse')->withInput()->withErrors($v);
    



【问题讨论】:

欢迎来到 ***。在此处提问时,请始终提供与该问题相关的示例代码,并附上您已经尝试过的解决方案列表 我已经编辑了你大部分帖子的语法以使其更清晰,但我不明白你的最后一句话——“所以现在我的问题是当你进入我的表单类别时如何存在于“类别表”中。你能解释一下你想要做什么吗?向我们展示您的代码? 【参考方案1】:

你可以这样制定规则:

$rules = array(
    'category_name' => 'unique:categories,category_name'
);

【讨论】:

以上是关于Laravel Eloquent 验证插入异常?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 验证使用 eloquent 或 raw 查询

Laravel 插入嵌套的 Eloquent ORM 模型

Laravel Eloquent 更新失败,但没有得到任何异常

表单没有正确地将数据插入数据库 [Laravel][Eloquent]

如何在 Eloquent ORM laravel 中获取最后一个插入 ID

Laravel Eloquent插入记录两次