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

  

原文地址:https://www.cnblogs.com/bing2017/p/11356982.html