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 ...
随机推荐
- ueditor编辑器+粘贴word
最近公司做项目需要实现一个功能,在网页富文本编辑器中实现粘贴Word图文的功能. 我们在网站中使用的Web编辑器比较多,都是根据用户需求来选择的.目前还没有固定哪一个编辑器 有时候用的是UEditor ...
- poj 2976 Dropping tests (最大化平均值:二分查找)
#include<iostream> #include<algorithm> #include<stdio.h> #include<math.h> #d ...
- Codeforces 1054D Changing Array 贪心+异或和
题意 给一个长度为\(n\)的位数为\(k\)的整数数列\(a\),一次操作可将任意\(a_i\)取反,问经过任意次操作后最多有多少个区间异或和不为\(0\) 分析 求出前缀异或和,区间异或和为\(0 ...
- Binary Protocol
A. Binary Protocol 这道题要唯一注意的一点就是数字0的表示--0个"1"来表达,所以字符串"100"所表示的数字就是100 附代码: // C ...
- CodeForces 724C Ray Tracing(碰撞类,扩展gcd)
又一次遇到了碰撞类的题目,还是扩展gcd和同余模方程.上次博客的链接在这:http://www.cnblogs.com/zzyDS/p/5874440.html. 现在干脆解同余模直接按照套路来吧,如 ...
- Centos-Redhat下远程桌面的方法 & Redhat改Centos源
折腾了好几天才搞定,Redhat下远程桌面的方法,首先保证本身已经装了桌面,并且可以ssh访问 由于系统中自带python2环境,装了anaconda以及它带的python3环境,这个必须存在(前提) ...
- mybatis延迟加载(Collection)
上篇讲了assocation,同样我们也可以在一对多关系配置的结点中配置延迟加载策略. 结点中也有 select 属性,column 属性. 需求: 完成加载用户对象时,查询该用户所拥有的账户信息. ...
- Lasso回归总结
Ridge回归 由于直接套用线性回归可能产生过拟合,我们需要加入正则化项,如果加入的是L2正则化项,就是Ridge回归,有时也翻译为岭回归.它和一般线性回归的区别是在损失函数上增加了一个L2正则化的项 ...
- LeetCode 134. 加油站(Gas Station)
题目描述 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升. 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升.你从其 ...
- Session案例-用户登录场景
package com.loaderman.demo; import java.io.IOException; import java.io.PrintWriter; import javax.ser ...