zoukankan      html  css  js  c++  java
  • 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
    

      

  • 相关阅读:
    关于JSON可能出现的错误,待更/todo
    mongoose的安装与使用(书签记录) 2017
    HTTP的学习记录3--HTTPS和HTTP
    HTTP的学习记录(二)头部
    HTTP(一)概述
    LeetCode 455. Assign Cookies
    LeetCode 453. Minimum Moves to Equal Array Elements
    LeetCode 448. Find All Numbers Disappeared in an Array
    LeetCode 447. Number of Boomerangs
    LeetCode 416. Partition Equal Subset Sum
  • 原文地址:https://www.cnblogs.com/bing2017/p/11356982.html
Copyright © 2011-2022 走看看