laravel5.7使用ORM對映資料庫做CURD之新增,刪除,查詢操作
阿新 • • 發佈:2019-01-12
ORM對映資料庫,操作與表相關的操作,也就是增刪改查。在這裡,為大家寫一個簡單的單表操作:
ORM類Flight.php:
<?php namespace App; use Illuminate\Database\Eloquent\Model; class Flight extends Model { /** * 關聯到模型的資料表 * * @var string */ //指定表名 protected $table = 'flights'; //指定主鍵 protected $primaryKey = 'id'; //時間變成fales 可以開啟true public $timestamps=false; }
在定義VoteController.php控制器新增:
<?php namespace App\Http\Controllers\vote; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use App\Flight; use App\Model\Privilege; use Session; class VoteController extends Controller{ //調取新增頁面 public function index(Request $request){ // echo "123";die; if($request->isMethod('post')){ $result=$request->all(); $img = $request->file('imgs'); //獲得檔名字為imgs的所有值 // print_r($img); $img_name=$img->getClientOriginalName();//圖片名稱 $img_txt= $img->getClientOriginalExtension();//圖片字尾 // print_r($img_txt); $read=rand(10000,99999); $new_name=date('YmdHis').$read.'.'.$img_txt; $img->move('./vote',$new_name); if(empty($result['user'])){ $array['status']=101; $array['msg']="參賽人姓名不可以為空";die; }else{ if(empty($result['telphone'])){ $array['status']=102; $array['msg']="參賽人聯絡方式不可以為空";die; }else{ if(empty($result['msg'])){ $array['status']=103; $array['msg']="參賽人宣言不可以為空";die; }else{ if(empty($result['vote'])){ $array['status']=104; $array['msg']="參賽人姓名不可以為空";die; }else{ //查詢表中姓名是否有重複 $user = Flight::where('user',$result['user'])->first(); //如果不重複,則入庫 if(empty($user)){ //查詢表中電話是否有重複 $telphone = Flight::where('telphone',$result['telphone'])->first(); if(empty($telphone)){ //接收前臺傳來的值 $data = array( 'user'=>$result['user'], 'sex' =>$result['sex'], 'telphone'=>$result['telphone'], 'msg'=>$result['msg'], 'one_people'=>$result['vote'], 'imgs'=>$new_name ); //測試列印陣列 // print_r($data);die; $info = Flight::insert($data); //執行入庫 // print_r($info); if($info){ //執行入庫成功,重定向到展示方法 return redirect('vote/shows'); }else{ //執行入庫失敗,重定向到新增頁面的get方法 return redirect('vote/index'); } }else{ $array['status']=106; $array['msg']="該聯絡電話已繫結,卻確認您的聯絡方式!"; } }else{ $array['status']=105; $array['msg']="該參賽人已報過名!"; } } } } } return $array; }else{ //在為get的時候,展示靜態頁面 return view('vote/vote_add'); } } //獲取表中資料,渲染出來 public function show(){ $info = Flight::all(); return view('vote/index',['data'=>$info]); } //刪除資料 public function delete(){ $vote = Flight::find($id); $data = $vote->delete(); if($data){ return redirect('vote/index'); } } }
展示頁面渲染的迴圈:
@foreach($data as $v) <li class="first"> <a href="{{url('vote/msg')}}/{{$v->id}}" class="js-vote"> <div class="clearfix"> <div class="head-wrap"> <div class="head" style="background-image:url(../../uploads/{{$v->imgs}})"></div> </div> <div class="interactive"> <p class="title" style="font-size:20px;padding:25px 0 25px">{{$v->user}}</p> <p class="count"><em>426</em> 票</p> </div> </div> <div class="s decorative"></div> </a> </li> @endforeach <li> <a title="編輯" href="{{url('vote/update')}}/{{$v->id}}"</a> <a title="刪除" href="{{url('vote/delete')}}/{{$v->id}}"</a> </li>
在下一章寫展示,修改