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.