将表格中的标题(字符串)与表单输入标题(字符串)匹配

时间:2019-05-09 06:55:58

标签: php mysql laravel

我的数据库中有一个 issue 表。此 issues 表的 issueTitle 列具有唯一的约束。

现在,如果不存在具有相同名称的另一个标题,我想存储另一个标题。 我在laravel中使用了where子句。 它适用于标题如下的情况:

  

表中的标题字段:“ Hello”,“ Hello”,“ Hello”
  表单数据标题:'hello','HELLO','Hello'

但不适用于这些情况:

  

表中的标题字段:“ Hello World”,“ Hello World?”,
  表单数据中的标题:“ hello(多个空格)世界”,“ HELLO WORLD”

我希望你明白了。我只想检查它是否是唯一标题,然后将其存储在表中。

我试图检查标题是否存在相同名称。如果存在,则重定向到错误消息为“问题已存在”的页面。

IssuesController.php

public function store(Request $request)
{
    $this->validate($request, [
        'title'    => 'required|max:255',
        'category' => 'required|not_in:0',
        'body'     => 'required',
    ]);

    $issue = new Issue;
    $issue->issue_title = Input::get('title');

    if (Issue::where('issue_title', $issue->issue_title)->first()) {
        return redirect('/dashboard')->with('error', 'Issue already raised!');
    }

    $issue->issue_body = Input::get('body');
    $issue->user_id = Auth::user()->id;
    $issue->cat_id = 1;
    $issue->save();

    return redirect('/dashboard')->with('success', 'Issue raised successfully!');

}

我希望每个标题都唯一存储。
我认为可以做到的是:

  

删除所有空格
  用小写字母整句
  从末端删除(?,。,!)之类的标记。
  例:   乌托邦粗心大意的警察成为粗心大意的警察

我们也不能第一次将其存储在数据库中,因为很难检索它并显示在另一个视图上。 我认为 最好从数据库中获取标题,以上述形式进行更改,对输入数据进行相同的操作,然后进行比较。

0 个答案:

没有答案