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>

在下一章写展示,修改 

猜你喜欢

转载自blog.csdn.net/weixin_42980713/article/details/86356881