Пустой запрос при отправке объекта в метод 'show' в контроллере - PullRequest
0 голосов
/ 31 марта 2019

Я пытаюсь отправить объект методу show и получаю его без атрибутов.

index.blade.php

<a href="{{ route('admin.specialities.show', [$speciality])}} "> {{$speciality->display_name}}</a>

web.php

 Route::resource('admin/specialities', 'SpecialtyController', 
   ['names'=> ['index' => 'admin.specialities',                                                                                                                                           
               'show'  => 'admin.specialities.show',]]);

SpecialtyController.php

namespace App\Http\Controllers;

use App\Models\Backend\Specialty;
use Illuminate\Http\Request;

class SpecialtyController extends Controller
{
    public function index() {
        return view('specialities.specialities')
            ->with(['specialities' => Specialty::all()]);
    }


    public function show(Specialty $specialty) {
        dd($specialty); //<- always null atributes
        return view('specialities.show', compact('specialty'));
    }
}

Specialty.php

namespace App\Models\Backend;

use Illuminate\Database\Eloquent\Model;

class Specialty extends Model
{
    /**
     * Get the route key for the model.
     *
     * @return string
     */
    public function getRouteKeyName()
    {
        return 'slug';
    }
}

Есть идеи, что может быть не так или где проверить?

1 Ответ

0 голосов
/ 31 марта 2019

Вы должны передать id на маршруте:

<a href="{{ route('admin.specialities.show', $speciality->id)}} "> {{$speciality->display_name}}</a>

В вашем контроллере вы можете найти конкретную модель:

public function show(id) 
{
    $speciality = Specialty::FindOrFail($id);
    return view('specialities.show', compact('speciality'));
}

Измените свой индексный метод на:

public index()
{
    $specialities = Specialty::all();
    return view('specialities.specialities', compact('specialities'));
}

Примечание

Будьте осторожны при объявлении переменных, у вас есть модель с именем Specialty , но ваша переменная, представляющая эту модель, $speciality

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...