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 ...
随机推荐
- 9种纯CSS3人物信息卡片动态展示效果
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
- BFC的理解
一.BFC概念 BFC即Block Formatting Contexts(块级格式化上下文),它属于普通流.它是页面中的一块渲染区域,并且有一套渲染规则,它决定了其他子元素将如何定位,以及和其他元素 ...
- 创建springboot项目的三种方法(参考
https://blog.csdn.net/mousede/article/details/81285693 https://blog.csdn.net/weixin_42194143/article ...
- P1121 环状最大两段子段和(DP)
P1121 环状最大两段子段和 难度 提高+/省选- 题目描述 给出一段环状序列,即认为A[1]和A[N]是相邻的,选出其中连续不重叠且非空的两段使得这两段和最大. 输入输出格式 输入格式: 输入文件 ...
- 技巧:在 C/C++中如何构造通用的对象链表[转]
原文:技巧:在 C/C++中如何构造通用的对象链表 虚拟链表和类链表可以很好地实现这一点 您是否做过这样一个项目,它要求您在内存中保存数目不定的若干不同对象?对于某些情况,二叉树是最佳选择,但在通常情 ...
- 【译】XMLHttpRequest和Fetch, 谁最适合AJAX?
原文地址:https://www.sitepoint.com/xmlhttprequest-vs-the-fetch-api-whats-best-for-ajax-in-2019/ 目录 从AJAX ...
- $\LaTeX$数学公式大全9
$9\ Math\ mode\ accents$ $\acute{a}$ \acute{a} $\breve{a}$ \breve{a} $\ddot{a}$ \ddot{a} $\grave{a}$ ...
- Inter IPP & Opencv 在centos 环境下使用GCC命令行编译c++运行
Inter IPP & Opencv 的安装看这里:https://www.cnblogs.com/dzzy/p/11332907.html 考虑到服务器一般没有桌面环境,不能用IDE编译,直 ...
- 二、WebSphere Application Server上部署war包并访问
进入我们was服务器控制台之后我们直接按照下图操作: 2.选择要上传的war包,下一步 3.一直下一步,步骤4注意填好“上下文根”,然后继续下一步,直到完成. 4.点击保存到主配置 5.应用程序> ...
- java传递String参数
java传递String参数不会改变原String参数,此处传递的是copy package numCombine; public class NumComberAll { public static ...