简体   繁体   中英

Laravel route model binding does not get ID

I'm learning Laravel 5 and found something that I do not understand. If I put this code to route, than everything goes fine:

Route::bind('addresses', function($value, $route) {
    return App\Address::find($value)->first();
});

But without it I got the:

Whoops, looks like something went wrong. 1/1 ReflectionException in Container.php line 736: Class Address does not exist

error.

My routes:

Route::model('addresses', 'Address'); Route::resource('addresses', 'AddressesController');

My AddressesController:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Address;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class AddressesController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return Response
     */
    public function index()
    {
        $addresses = Address::all();
        return view('addresses.index', compact('addresses'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  Request  $request
     * @return Response
     */
    public function store(Request $request)
    {
        //
    }

    /**
     * Display the specified resource.
     *
     * @param  Address $address
     * @return Response
     */
    public function show(Address $address)
    {
        return view('addresses.show', compact('address'));
    }

My question is why I get the error code if I do not bind the ID value directly in my route. Laravel says with RESTful Resource Controller I got the addresses/{address} with ID automatically, but it seems not. Any idea? Thanky for your help.

Route::model takes full class name. Route::model('addresses', 'App\\Address');

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM