1.寫這個的原因
最近在寫公司項目的時候一個功能很是讓我頭疼如標題看到的一樣,平時我們一般都只負責數據表的查詢或者連表查詢某一個字段和A表字段一起顯示出來。
但是添加到A表還是頭一次,第一天想了很久都沒有想出來很是頭疼,於是只好把希望放在第二天誰知道一早上的就
靈光乍現,思路泉涌不息,在我的努力下終於寫出來了☺
2.1.1 car_info表2.首先上數據庫表

2.1.2 users表

好了廢話不多說上代碼。。。。
3.信息添加功能
1 public function create(Request $request){ 2 $input=$request->except('_token'); 3 $res=\DB::table('users')->select('id')->where(['real_name'=>$input['name']])->get(); 4 if ($res!=null){ 5 foreach ($res as $value){ 6 $data=\DB::table('car_info')->insert(['name'=>$input['name'],'principal'=>$input['principal'],'user_id'=>$value->id]); 7 if($data){ 8 return redirect('admin/car_info'); 9 }else{ 10 return back(); 11 } 12 } 13 } 14 $name=\DB::table('car_info')->insert(['name'=>$input['name'],'principal'=>$input['principal']]); 15 if($name){ 16 return redirect('admin/car_info'); 17 }else{ 18 return back(); 19 } 20 }
上訴功能實現的是添加的時候如果A(car_info)表的name對應B表的real_name相等得到B(users)表的主鍵,並且將得到的主鍵添加到A表的user_id中,實際操作的時候就是你添加A表name字段
如果sql語句查詢到B表real_name字段名稱對應那么對應的B表的id,將添加到A表對應的user_id里面,如果沒有和B表的real_name對應那么則正常添加信息
4. 信息修改功能
有添加當然有修改啦好了廢話不多說上干貨代碼伺候
1 //修改 2 public function update(Request $request){ 3 $input=$request->except('_token');//得到除卻token之外的全部信息 4 $res=\DB::table('users')->select('id')->where(['real_name'=>$input['name']])->get(); 5 6 if($res!=null){ 7 foreach ($res as $value){ 8 $data=\DB::table('car_info') 9 ->where(['id'=>$input['id']])->update(['id'=>$input['id'],'name'=>$input['name'],'principal'=>$input['principal'],'user_id'=>$value->id]); 10 11 if($data){ 12 return redirect('admin/car_info'); 13 }else{ 14 return back(); 15 } 16 } 17 } 18 $name=\DB::table('car_info')->where(['id'=>$input['id']])->update(['id'=>$input['id'],'name'=>$input['name'],'principal'=>$input['principal'],'user_id'=>null]); 19 if($name){ 20 return redirect('admin/car_info'); 21 }else{ 22 return back(); 23 } 24 }
上訴功能實現的是修改的時候如果A(car_info)表的name對應B表的real_name相等得到B(users)表的主鍵,並且將得到的主鍵添加到A表的user_id中,實際操作的時候就是你修改A表name字段
如果sql語句查詢到B表real_name字段名稱對應那么對應的B表的id,將添加到A表對應的user_id里面,如果沒有和B表的real_name對應那么則將id為空!
