项目第三天:增删改查

# 项目第三天
## 安装composer

运行Composer-Setup.exe 安装composer  选择/xampp/php/php.exe文件 安装完成

cmd下输入composer  检查是否安装成功

检查phpinfo 是否已安装下列扩展: openssl  pdo  mbstring  tokenizer xml
## 新建laravel项目

    composer create-project --prefer-dist laravel/laravel project_name //安装最新版laravel

## 配置数据库
mylaravel/config/database.php->mylaravel/.env 

    DB_CONNECTION=mysql
    DB_HOST=localhost
    DB_PORT=3306
    DB_DATABASE=video
    DB_USERNAME=root
    DB_PASSWORD=

## 从数据库中调取数据
生成model类  php artisan make:model Model/Stu 在app下会新建Model/Stu.php

    namespace App\Model; //命名空间

    use Illuminate\Database\Eloquent\Model;  //引用laravel框架中Model
    
    class Stu extends Model
    {
        public $timestamps = false;  //指定默认的created_at update_at 不输出
        protected $table='stu'; //强制指定表名为stu
        protected $stu='stu';
    }
>PS:若不强制指定表名 laravel会在表名后加s 报错为找不到表stu

## 查增改删(资源控制器方法)
使用命令生成控制器(已包含资源控制器方法)

    php artisan make:controller admin/StuController --resource
在web.php中注册对应资源路由

    Route::resource('/stu', 'Admin\StuController');

### 查

    <a href="{{ url('admin/stu') }}">浏览</a>
StuController.php

    use App\Model\Stu; //使用Model中Stu方法

    $stu=Stu::all();
    return view('admin.Qiniu_info.index',['data'=>$stu]);
index.blade.php

     @foreach ($data as $v)
        <tr>
            <td>{{ $v->id }}</td>
            <td>{{ $v->uid }}</td>
            ...
        </tr>
    @endforeach
### 增
显示添加页面

    <a href="{{ url('admin/stu/create') }}">添加</a>
StuController.php

    return view("admin.stu.create");
create.blade.php
    
    <form action="{{ url('admin/stu') }}" method="post">
        <input type="hidden" name="_token" value="<?php echo csrf_token(); ?>"> //防止csrf攻击
        <div class="form-group">
          <label>键:</label>
          <div>
            <input type="text" placeholder="键名" name="key">
          </div>
        </div>
        <div class="form-group">
          <label>键:</label>
          <div>
            <input type="datetime-local" placeholder="上传时间" name="createtime">
          </div>
        </div>    
        ...    
    </form>
执行添加

    $input = $request->only(['uid','fname','key','createtime','description']);
    $id = Qiniu_info::insertGetid($input);
    return redirect('/admin/stu');
### 改
index.blade.php

    <a href="/admin/stu/{{ $v->id }}/edit">编辑</a> 
Controller.php

    $ob = Stu::where("id",$id)->first();  //Stu::find($id)
    return view("admin.stu.edit",['data'=>$ob]);
edit.balde.php

    <form action="{{ URL('admin/stu') }}/{{ $data->id }}" method="post" >
        <input type="hidden" name="_method" value="put">  //伪造put提交  {{ method_field('PUT') }}
        <input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">  //{{ csrf_token() }}
        <div class="form-group">
          <label>键:</label>
          <div>
            <input type="text" name="key" value="{{ $data->key }}"/>
          </div>
        </div>
        <div class="form-group">
          <label>上传时间:</label>
          <div>
            <input type="datetime-local" name="createtime" value="{{ $data->createtime }}"/>
          </div>
        </div>
        ...
    </form>
执行修改
Controller.php

    $input = $request->only(['uid','fname','key','createtime','description']);
    $id = Qiniu_info::where("id",$id)->update($input);
    if($id>0){
        return redirect('/admin/stu');  //测试->with("修改成功");
    }else{
        echo "修改失败";
    }

### 删    
index.blade.php

    <script>
        function doDel(id){
            document.myform.action = "/admin/stu/"+id;
            document.myform.submit();
        }
    </script>

    <a href="javascript:doDel({{ $v->id }})">删除</a>

     <form style="display:none;" name="myform" method="post">
        <input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">
        <input type="hidden" name="_method" value="DELETE">
    </form>
StuController.php

    Qiniu_info::where("id",$id)->delete();
    return redirect('/admin/stu');

posted on 2017-07-02 15:40  yeyu1858  阅读(136)  评论(0)    收藏  举报

导航