Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检查值是否存在于数据库中或不存在于laravel中_Php_Laravel - Fatal编程技术网

Php 检查值是否存在于数据库中或不存在于laravel中

Php 检查值是否存在于数据库中或不存在于laravel中,php,laravel,Php,Laravel,我有一个愿望列表系统,在这里我保存了user\u id和product\u id,我想在保存到愿望列表表之前检查一下,看看用户是否已经在那里保存了该产品 我发现了一些关于这方面的问题和文章,但它们都只验证1个值,而不是同时验证2个值,我需要在保存之前检查auth::user()->id和product->id 以下是我的存储方法: public function store(Request $request) { //Validating title and body f

我有一个愿望列表系统,在这里我保存了
user\u id
product\u id
,我想在保存到愿望列表表之前检查一下,看看用户是否已经在那里保存了该产品

我发现了一些关于这方面的问题和文章,但它们都只验证1个值,而不是同时验证2个值,我需要在保存之前检查
auth::user()->id
product->id

以下是我的存储方法:

  public function store(Request $request)
    {
      //Validating title and body field
      $this->validate($request, array(
          'user_id'=>'required',
          'product_id' =>'required',
        ));

      $wishlist = new Wishlist;

      $wishlist->user_id = $request->user_id;
      $wishlist->product_id = $request->product_id;


      $wishlist->save();

      return redirect()->back()->with('flash_message',
          'Item, '. $wishlist->product->title.' Added to your wishlist.');
    }
这是我的表格:

<form action="{{route('wishlist.store')}}" method="post">
                                    {{csrf_field()}}
                                    <input type="text" name="user_id" value="{{Auth::user()->id}}" hidden>
                                    <input type="text" name="product_id" value="{{$pdts->id}}" hidden>
                                    <button type="submit" class="btn btn-success">
                                        <i class="fa fa-heart"></i>
                                    </button>
                                  </form>

{{csrf_field()}}
谢谢。

您可以使用并忘记验证复合密钥

public function store(Request $request)
{
    $data = $request->validate([
        'user_id'    => 'required',
        'product_id' => 'required'
    ]);

    $wishlist = Wishlist::firstOrCreate($data);

    return redirect()
        ->back()
        ->with('flash_message', 'Item, ' . $wishlist->product->title . ' added to your wishlist.');
}
firstOrCreate()
方法将尝试从您的wishlists表中查找包含给定数据的记录,如果没有找到任何记录,它将创建一个新记录并返回它

换句话说,如果它找不到具有给定
用户id
产品id
值的记录,它将创建一个新记录

或者,您可以注册一个类似于建议的密钥。

您可以使用并忘记验证复合密钥

public function store(Request $request)
{
    $data = $request->validate([
        'user_id'    => 'required',
        'product_id' => 'required'
    ]);

    $wishlist = Wishlist::firstOrCreate($data);

    return redirect()
        ->back()
        ->with('flash_message', 'Item, ' . $wishlist->product->title . ' added to your wishlist.');
}
firstOrCreate()
方法将尝试从您的wishlists表中查找包含给定数据的记录,如果没有找到任何记录,它将创建一个新记录并返回它

换句话说,如果它找不到具有给定
用户id
产品id
值的记录,它将创建一个新记录


或者,您可以注册一个类似于建议的属性。

您可以使用isset函数检查属性是否已设置

public function store (Request $request)
{

          // backend validator goes code here
          $status=Wishlist::where('user_id',Auth::user()->id)
                                           ->where('product_id',$request->product_id)
                                           ->first();

           if(isset($status->user_id) and      isset($request->product_id))
           {
                  //Return to already added page
           }
          else
          {
                  //Return to successfully added page
          }

}

您可以使用isset函数检查属性是否已设置

public function store (Request $request)
{

          // backend validator goes code here
          $status=Wishlist::where('user_id',Auth::user()->id)
                                           ->where('product_id',$request->product_id)
                                           ->first();

           if(isset($status->user_id) and      isset($request->product_id))
           {
                  //Return to already added page
           }
          else
          {
                  //Return to successfully added page
          }

}

$this->validate
,你不能添加吗?@BagusTesa如果我添加了exist,那么即使用户有1个愿望列表,也不能添加第二个,因为他的id已经存在,我需要的是将用户id和产品id if==与新id进行比较,如果不添加它,则显示错误。因此我需要检查这两个id'sRavel不提供类似于此的现成验证。您需要创建一个自定义验证规则-检查文档以获取更多信息,如果您想确保数据库中存在给定的用户id/产品id对,可以使用
exists
。不幸的是,没有内置的规则像
not\u exists
$this->validate
,你不能添加吗?@BagusTesa如果我添加exist,那么即使用户有一个愿望列表,也不能添加第二个,因为他的id已经存在了,我需要的是将用户id和产品id if==与新id进行比较,如果不添加它,则显示错误。因此我需要检查这两个id'sRavel不提供类似于此的现成验证。您需要创建一个自定义验证规则-检查文档以获取更多信息,如果您想确保数据库中存在给定的用户id/产品id对,可以使用
exists
。不幸的是,没有像
not\u这样的内置规则存在