简体   繁体   English

Laravel路由模型绑定未获取ID

[英]Laravel route model binding does not get ID

I'm learning Laravel 5 and found something that I do not understand. 我正在学习Laravel 5,发现了一些我不理解的东西。 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 Container.php第736行中的1/1 ReflectionException:类地址不存在

error. 错误。

My routes: 我的路线:

Route::model('addresses', 'Address'); 路线:: model('addresses','Address'); Route::resource('addresses', 'AddressesController'); 路线::资源(“地址”,“地址控制器”);

My AddressesController: 我的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. 我的问题是,如果我没有直接在路由中绑定ID值,为什么会得到错误代码。 Laravel says with RESTful Resource Controller I got the addresses/{address} with ID automatically, but it seems not. Laravel说,使用RESTful资源控制器时,我会自动获得ID为ID的地址/ {address},但似乎没有。 Any idea? 任何想法? Thanky for your help. 谢谢您的帮助。

Route::model takes full class name. Route::model完整的类名。 Route::model('addresses', 'App\\Address');

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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