项目第三天:增删改查
# 项目第三天
## 安装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');
浙公网安备 33010602011771号