Laravel 里最简单的CURD套路
控制器
namespace App\Http\Controllers; use App\Http\Requests\UserAddressRequest;
use App\Models\UserAddress;
use Illuminate\Http\Request; class UserAddressesController extends Controller
{
//
public function index(Request $request){ return view('user_addresses.index',['addresses'=>$request->user()->addresses]);
} public function create(){ return view('user_addresses.create_and_edit',['address'=>new UserAddress()]);
} public function edit(UserAddress $user_address){ return view('user_addresses.create_and_edit',['address'=>$user_address]);
} public function update(UserAddress $user_address,UserAddressRequest $request){ $user_address->update($request->only([
'province',
'city',
'district',
'address',
'zip',
'contact_name',
'contact_phone',
])); return redirect()->route('user_addresses.index');
} public function destroy(UserAddress $user_address){ $user_address->delete(); return redirect()->route('user_addresses.index');
} public function store(UserAddressRequest $request){ $request->user()->addresses()->create($request->only([
'province',
'city',
'district',
'address',
'zip',
'contact_name',
'contact_phone',
]));
return redirect()->route('user_addresses.index');
}
}
路由
Auth::routes(['verify'=>true]);
/*Route::get('/home', 'HomeController@index')->name('home');*/
Route::group(['middleware'=>['auth']],function(){
Route::get('user_address','UserAddressesController@index')->name('user_addresses.index');//收货地址列表
Route::get('user_address/create','UserAddressesController@create')->name('user_addresses.create');//收货地址列表
Route::post('user_address','UserAddressesController@store')->name('user_addresses.store');//收货地址保存
Route::get('user_address/{user_address}','UserAddressesController@edit')->name('user_addresses.edit');//收货地址保存
Route::put('user_address/{user_address}','UserAddressesController@update')->name('user_addresses.update');//收货地址保存
Route::delete('user_address/{user_address}','UserAddressesController@destroy')->name('user_addresses.destroy');//收货地址保存
});
Route::fallback(function () {
return '好像没有您要的资源';
});
验证器
php artisan make:request Request php artisan make:request UserAddressRequest
此时继成Request的基类,注意验证都要改成通过true
class UserAddressRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
} /**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'province' => 'required',
'city' => 'required',
'district' => 'required',
'address' => 'required',
'zip' => 'required',
'contact_name' => 'required',
'contact_phone' => 'required',
];
}
public function attributes()
{
return [
'province' => '省',
'city' => '城市',
'district' => '地区',
'address' => '详细地址',
'zip' => '邮编',
'contact_name' => '姓名',
'contact_phone' => '电话',
];
}
}
模板
@extends('layouts.app')
@section('title','收货地址列表')
@section('content')
<div class="row">
<div class="col-md-10 offset-md-1">
<div class="card panel-default">
<div class="card-header">收货地址列表<a href="{{ route('user_addresses.create') }}" class="float-right">新增收货地址</a></div>
<div class="card-body">
<table class="table table-bordered table-striped">
<thread>
<tr>
<th>收货人</th>
<th>地址</th>
<th>邮编</th>
<th>电话</th>
<th>操作</th>
</tr>
</thread>
<tbody>
@foreach($addresses as $address)
<tr>
<td>{{ $address->contact_name }}</td>
<td>{{ $address->full_address }}</td>
<td>{{ $address->zip }}</td>
<td>{{ $address->contact_phone }}</td>
<td>
<a href="{{ route('user_addresses.edit',['user_address'=>$address->id]) }}" class="btn btn-primary">修改</a>
<form action="{{ route('user_addresses.destroy',['user_address'=>$address->id]) }}" method="post" style="display: inline-block">
{{ csrf_field() }}
{{ method_field('DELETE') }}
<button class="btn btn-danger" type="submit">删除 </button>
</form>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
@endsection
Laravel 里最简单的CURD套路的更多相关文章
- TODO:Laravel 内置简单登录
TODO:Laravel 内置简单登录 1. 激活Laravel的Auth系统Laravel 利用 PHP 的新特性 trait 内置了非常完善好用的简单用户登录注册功能,适合一些不需要复杂用户权限管 ...
- [angularjs] MVC + Web API + AngularJs 搭建简单的 CURD 框架
MVC + Web API + AngularJs 搭建简单的 CURD 框架 GitHub 地址:https://github.com/liqingwen2015/Wen.MvcSinglePage ...
- Node.js学习笔记(3) - 简单的curd
这个算是不算完结的完结吧,前段时间也是看了好久的Node相关的东西,总想着去整理一下,可是当时也没有时间: 现在看来在整理的话,就有些混乱,自己也懒了,就没在整理,只是简单的记录一下 一.demo的简 ...
- Laravel框架中的数据库CURD操作、连贯操作、链式操作的用法
Laravel是一套简洁.优雅的PHP Web开发框架(PHP Web Framework).它可以让你从面条一样杂乱的代码中解脱出来:它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁.富于 ...
- SmartSql使用教程(1)——初探,建立一个简单的CURD接口服务
一.引言 最近SmartSql被正式引入到了NCC,借着这个契机写一个使用教程系列 二.SmartSql简介[摘自官方文档] 1. SmartSql是什么? SmartSql = MyBatis + ...
- Laravel 5.1 简单学习
Laravel 5.1 简单学习 (1)Laravel的nginx配置,不配置或者配置错误,可能会报404或500错误,访问不到页面. location / { try_files $uri $uri ...
- Laravel集合的简单理解
本篇文章给大家带来的内容是关于Laravel集合的简单理解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 前言 集合通过 Illuminate\Database\Eloquent\C ...
- 使用go, gin, gorm编写一个简单的curd的api接口
go 是一门非常灵活的语言,既具有静态语言的高性能,又有动态语言的开发速度快的优点,语法也比较简单,下面是通过简单的代码实现了一个简单的增删改查 api 接口 hello world 常规版 新建 d ...
- laravel启动过程简单解析
:first-child{margin-top:0!important}img.plugin{box-shadow:0 1px 3px rgba(0,0,0,.1);border-radius:3px ...
随机推荐
- 【Andriod-AlertDialog控件】 弹出对话框AlertDialog用法
Result: Code: import android.app.Activity; import android.app.AlertDialog; import android.content.Di ...
- spring-boot的三种启动方式
spring-boot的启动方式主要有三种: 1. 运行带有main方法类 2. 通过命令行 java -jar 的方式 3. 通过spring-boot-plugin的方式 一.执行带有main方法 ...
- 2018蓝桥杯C/C++组第4题第几个幸运数
题目4标题:第几个幸运数 到x星球旅行的游客都被发给一个整数,作为游客编号.x星的国王有个怪癖,他只喜欢数字3,5和7.国王规定,游客的编号如果只含有因子:3,5,7,就可以获得一份奖品. 我们来看前 ...
- CCPC-Wannafly & Comet OJ 夏季欢乐赛(2019)D
题面 一开始想到一个 O(N^2) 做法,先把x排序,然后顺次枚举x最大的点,看向前最多可以保留多少点 (也就是先不管正方形的上下长度限制,先考虑左右的限制).然后再对这些点做一遍类似的..(等等这么 ...
- 灰度图像--图像分割 Marr-Hildreth算子(LoG算子)
学习DIP第49天 转载请标明本文出处:*http://blog.csdn.net/tonyshengtan *,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发: https:/ ...
- Ubuntu安裝python3.7版
https://blog.csdn.net/u014775723/article/details/85213793 failed to fetch ppa:https://blog.csdn.net/ ...
- JavaWeb_(SSH论坛)_一、项目入门
基于SSH框架的小型论坛项目 一.项目入门 传送门 二.框架整合 传送门 三.用户模块 传送门 四.页面显示 传送门 五.帖子模块 传送门 六.点赞模块 传送门 七.辅助模块 传送门 项目已上传至gi ...
- TCP窗口扩大选项Window Scale
窗口扩大选项使TCP的窗口定义从16bit增加到32bit.这并不是通过修改TCP首部来实现的,TCP首部仍然使用16bit,而是通过定义一个选项实现对16bit的扩大操作来完成的.于是TCP在内部将 ...
- Error:java: 错误: 不支持发行版本 5
本文链接:https://blog.csdn.net/wo541075754/article/details/70154604 在Intellij idea中新建了一个Maven项目,运行时报错如下: ...
- SRS之分发HLS
来自: Delivery HLS 1. 综述 SRS支持HLS/RTMP两种成熟而且广泛应用的流媒体分发方式. RTMP指Adobe的RTMP(Realtime Message Protocol),广 ...