Документация Laravel 5 — привязка модели маршрута

Я читаю документацию по Laravel 5 и имею некоторые проблемы с пониманием привязки модели маршрута.

Я использую пример кода из Вот

Итак, я добавил строку в RouteServiceProvider.php:

public function boot(Router $router)
{
parent::boot($router);

$router->model('user', 'App\User');
}

Я добавил маршрут:

Route::get('/profile/{user}', function(App\User $user)
{
die(var_dump($user));
});

По умолчанию используется пользовательская модель Laravel.

<?php namespace App;

use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;

class User extends Model implements AuthenticatableContract,    CanResetPasswordContract {

use Authenticatable, CanResetPassword;

/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'users';

/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = ['name', 'email', 'password'];

/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = ['password', 'remember_token'];

}

И у меня есть MySQL таблица «пользователи». Когда я иду на URL http://blog.app/profile/1, Я ожидаю увидеть данные для пользователя с ID 1, но я не понимаю, как получить фактические значения модели. Вместо этого я вижу:

введите описание изображения здесь

Существуют ли специальные методы для получения значений модели? Или я что-то пропустил?

3

Решение

У меня такая же проблема здесь. Вы просто получаете пустой экземпляр App\User, поскольку вы заявили, что в вашем Route::get(), Модель никогда не загружается.

Еще один способ привязать модель к параметру:

Route::bind('user', function($value)
{
return App\User::find($value);
});

Закрытие, которое вы передаете методу связывания, получит значение сегмента URI и должно возвратить экземпляр класса, который вы хотите внедрить в маршрут.

4

Другие решения

У меня была такая же проблема.
Найдите переменную «$ namespace» в «RouteServiceProvider» и попробуйте установить ее пустым:

protected $namespace = '';
0

По вопросам рекламы [email protected]