[英]check if the row exists or not in the database
嗨,我要在數據庫中插入一些行,我想檢查該值是否存在,然后不插入,如果不存在,則插入它,這就是我的控制器:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Input;
use Auth;
use App\User;
use App\Product;
use DB;
class listController extends Controller
{
//
public function getIndex(Request $request){
$user_id=Auth::user()->id;
$list=DB::table('wishlist')
->join('products','wishlist.product_id','=','products.id')
->join('users','wishlist.user_id','=','users.id')
->select('wishlist.id','wishlist.product_id','wishlist.user_id',
'products.id as p_id','products.name','products.salary','products.image_name',
'users.id as u_id')
->where('wishlist.user_id','=',$user_id)
->get();
return view('contents.wishlist')->with('list',$list);
}
public function postIndex(Request $request){
$id=$request->input('id');
$user_id=Auth::user()->id;
$product_id =$request['product_id'];
DB::table('wishlist')->insert(['id'=>$id,'user_id'=>$user_id,'product_id'=>$product_id]);
return redirect('wishlist');
}
public function deleteDeleteProduct(Request $request,$id){
$pro=$request->get('id');
DB::table('wishlist')->where('id',$pro)->delete();
return redirect('wishlist');
}
}
誰能幫我檢查是否存在?
答案是這樣使用count函數:
public function postIndex(Request $request){
$id=$request->input('id');
$user_id=Auth::user()->id;
$product_id =$request['product_id'];
$wishlist=DB::table('wishlist')
->where('user_id','=',$user_id)
->where('product_id','=',$product_id)
->count();
if($wishlist > 0){
return redirect('wishlist');
}
else{
DB::table('wishlist')
->insert(['id'=>$id,'user_id'=>$user_id,'product_id'=>$product_id]);
return redirect('wishlist');
}
}
如果您使用的是mysql
,則可以使用INSERT IGNORE
和laravel的原始查詢
唯一的條件是您在表的列上定義了UNIQUE索引。
DB::insert(
'insert ignore into wishlist (id, user_id, product_id) values (?, ?)',
[$id, $user_id, $product_id]
);
基本上,您可以從願望清單表中運行查詢以搜索該特定產品。 此后,如果查詢沒有結果,則插入數據。 例如,
$found = DB::table('wishlist')->where('name', $product_name)->first();
if (!$found) {
//insert to table
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.