1. 程式人生 > >laravel5.7使用ORM對映資料庫做CURD之新增,刪除,查詢操作

laravel5.7使用ORM對映資料庫做CURD之新增,刪除,查詢操作

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>

在下一章寫展示,修改