[英]Laravel query with if condition
如果要滿足條件,我想將數據插入表中。 下面有這樣的代碼嗎?
DB::table('food')->insert([
'dessert' => $dessert1,
if(beverage == 1)
'drinks' => 1;
else if(beverage == 2)
'drinks' => 2;
]);
...
您可以嘗試以下方法:(食物是您的榜樣)
$food = new Food(); // new instance of food model
$food->dessert = $dessert1;
if(beverage == 1)
$food->drinks = 1;
else if(beverage == 2)
$food->drinks = 2;
$food->save();
這就是處理查詢條件的方式,但是根據您的問題,您可以執行以下操作:
DB::table('food')->insert([
'dessert' => $dessert1,
'drinks' => $beverage,
]);
像這樣使用:
碼:
$drinks = 0;
if(beverage == 1)
$drinks = 1;
else if(beverage == 2)
$drinks = 2;
DB::table('food')->insert([
'dessert' => $dessert1,
'drinks' => $drinks
]);
一種簡單的方法是將預定義值組成數組,即beverage => drink
$drinks = [ 1 => 1, 2 => 2 ];
DB::table('food')->insert([
'dessert' => $dessert1,
'drinks' => $drinks[$beverage];
]);
我認為您可以嘗試以下方法:
if($beverage == 1){
DB::table('food')->insert([
'dessert' => $dessert1,
'drinks' => 1,
]);
}
if(beverage == 2){
DB::table('food')->insert([
'dessert' => $dessert1,
'drinks' => 2,
]);
}
要么
$food = new Food;
$food->dessert = $dessert1;
if($beverage == 1){
$food->drinks = 1;
}
if($beverage == 1){
$food->drinks = 2;
}
$food->save();
您要么需要在插入物之外使用if來預先確定值:
$values = [ "dessert" => $dessert1 ];
if($beverage == 1) //How on earth did you ever expect if (beverage == 1) to work in anything?
$values['drinks'] = 1;
else if($beverage == 2)
$values['drinks'] = 2;
DB::table('food')->insert($values);
您還可以使用三元運算符(?:)確定內聯值:
DB::table('food')->insert([
'dessert' => $dessert1,
'drinks' => ($beverage==1?1:($beverage==2?2:null));
]);
在您的情況下,以下方法也可能起作用:
DB::table('food')->insert([
'dessert' => $dessert1,
'drinks' => $beverage
]);
您也可以像這樣在DB
創建條件
$query = DB::table('food');
$query->insert(['dessert' => $dessert1]);
if(beverage == 1)
$query->insert(['drinks' => 1]);
else if(beverage == 2)
$query->insert(['drinks' => 2]);
首先進行條件檢查,這將使您的代碼清晰易讀,如@RJParikh
$drinks = 0;
if(beverage == 1)
$drinks = 1;
else if(beverage == 2)
$drinks = 2;
或者,如果您的條目數量有限,請像@Zayn Ali
$drinks = [ 1 => 1, 2 => 2 ]; // $beverageValue => $drinksValue
然后使用插入-
DB::table('food')->insert([
......,
......,
]);
但是請記住,如果使用這樣的插入,則必須使模型中的字段可填充。 最好您在食物桌上建立模型,並按照@Firas Rassas
答案進行操作。 合並答案,您的代碼將如下所示-
$drinks = 0;
if(beverage == 1)
$drinks = 1;
else if(beverage == 2)
$drinks = 2;
$food = new Food(); // new instance of food model
$food->dessert = $dessert1;
$food->drinks = $drinks;
$food->save();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.