控制器

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套路的更多相关文章

  1. TODO:Laravel 内置简单登录

    TODO:Laravel 内置简单登录 1. 激活Laravel的Auth系统Laravel 利用 PHP 的新特性 trait 内置了非常完善好用的简单用户登录注册功能,适合一些不需要复杂用户权限管 ...

  2. [angularjs] MVC + Web API + AngularJs 搭建简单的 CURD 框架

    MVC + Web API + AngularJs 搭建简单的 CURD 框架 GitHub 地址:https://github.com/liqingwen2015/Wen.MvcSinglePage ...

  3. Node.js学习笔记(3) - 简单的curd

    这个算是不算完结的完结吧,前段时间也是看了好久的Node相关的东西,总想着去整理一下,可是当时也没有时间: 现在看来在整理的话,就有些混乱,自己也懒了,就没在整理,只是简单的记录一下 一.demo的简 ...

  4. Laravel框架中的数据库CURD操作、连贯操作、链式操作的用法

    Laravel是一套简洁.优雅的PHP Web开发框架(PHP Web Framework).它可以让你从面条一样杂乱的代码中解脱出来:它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁.富于 ...

  5. SmartSql使用教程(1)——初探,建立一个简单的CURD接口服务

    一.引言 最近SmartSql被正式引入到了NCC,借着这个契机写一个使用教程系列 二.SmartSql简介[摘自官方文档] 1. SmartSql是什么? SmartSql = MyBatis + ...

  6. Laravel 5.1 简单学习

    Laravel 5.1 简单学习 (1)Laravel的nginx配置,不配置或者配置错误,可能会报404或500错误,访问不到页面. location / { try_files $uri $uri ...

  7. Laravel集合的简单理解

    本篇文章给大家带来的内容是关于Laravel集合的简单理解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 前言 集合通过 Illuminate\Database\Eloquent\C ...

  8. 使用go, gin, gorm编写一个简单的curd的api接口

    go 是一门非常灵活的语言,既具有静态语言的高性能,又有动态语言的开发速度快的优点,语法也比较简单,下面是通过简单的代码实现了一个简单的增删改查 api 接口 hello world 常规版 新建 d ...

  9. laravel启动过程简单解析

    :first-child{margin-top:0!important}img.plugin{box-shadow:0 1px 3px rgba(0,0,0,.1);border-radius:3px ...

随机推荐

  1. HDU 6047 - Maximum Sequence | 2017 Multi-University Training Contest 2

    /* HDU 6047 - Maximum Sequence [ 单调队列 ] 题意: 起初给出n个元素的数列 A[N], B[N] 对于 A[]的第N+K个元素,从B[N]中找出一个元素B[i],在 ...

  2. SpringCloud之网关 Gateway(五)

    前面我们在聊服务网关Zuul的时候提到了Gateway,那么Zuul和Gateway都是服务网关,这两个有什么区别呢? 1. Zuul和Gateway的恩怨情仇 1.1 背景 Zuul是Netflix ...

  3. delphi请求http接口并上传附件

    实现附件的上传:需要使用TIdMultiPartFormDataStream控件, uses IdMultipartFormData; 例子: procedure TClientForm.Button ...

  4. TensorFlow使用记录 (九): 模型保存与恢复

    模型文件 tensorflow 训练保存的模型注意包含两个部分:网络结构和参数值. .meta .meta 文件以 “protocol buffer”格式保存了整个模型的结构图,模型上定义的操作等信息 ...

  5. Spring——bean的五种作用域和生命周期

    一.Bean的作用域 1.当一个bean的作用域为Singleton,那么Spring IoC容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义相匹配,则只会返回 ...

  6. 协程系列之Event Loops

    Event Loops 事件循环 事件是由程序的一部分在特定条件下发出的消息,循环是在某种条件下完成并执行某个程序直到它完成的构造,因此,事件循环是一个循环,它允许用户订阅事件传输并注册处理程序/回调 ...

  7. IDEA:Process finished with exit code -1073741819 (0xC0000005)

    出门左转:https://www.cnblogs.com/virgosnail/p/10335224.html

  8. 【软件工程】团队Git现场编程实战

    组长博客链接 博客链接 组员职责分工 队员 职责分工 恩泽 进行任务的划分与安排,调用API,负责餐饮商铺及商圈信息的获取 金海 解析API返回的json数据,提取有关信息 君曦 部分算法编写 季城 ...

  9. docker Swarm mode集群

    基本概念 Swarm 是使用 SwarmKit 构建的 Docker 引擎内置(原生)的集群管理和编排工具. 使用 Swarm 集群之前需要了解以下几个概念. 节点 运行 Docker 的主机可以主动 ...

  10. Hive数据提取

    Hive是基于Hadoop的ETL工具和数据仓库. 结构化数据 结构化数据就像RDBMS hive> create table structured_table(id int, name str ...