• Laravel 里最简单的CURD套路


    控制器

    namespace AppHttpControllers;
    
    use AppHttpRequestsUserAddressRequest;
    use AppModelsUserAddress;
    use IlluminateHttpRequest;
    
    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
    

      

  • 相关阅读:
    PHP程序员应该知道的15个库
    MongoDB、Cassandra 和 HBase 三种 NoSQL 数据库比较
    四种常见的POST提交数据方式
    PHP中获取文件扩展名的N种方法
    【问底】徐汉彬:亿级Web系统搭建——单机到分布式集群(三)
    【问底】徐汉彬:亿级Web系统搭建——单机到分布式集群(二)
    【问底】徐汉彬:亿级Web系统搭建——单机到分布式集群(一)
    ZF框架数据对象映射模式的思考
    概念大集合:单一入口、MVC、ORM、CURD、ActiveRecord...
    有默认参数的函数,默认参数为何需后置
  • 原文地址:https://www.cnblogs.com/bing2017/p/11356982.html
Copyright © 2020-2023  润新知