Мне нужно передать два аргумента контроллеру из представления в Laravel 5.6 - PullRequest
0 голосов
/ 25 января 2019

Как видно из заголовка, мне нужно отправить две переменные моему контроллеру из моего блейда, но когда я это сделаю, у меня будет ошибка ниже

Too few arguments to function App\Http\Controllers\ProjectController::show(), 1 passed and exactly 2 expected

Моя ссылка в блейде:

<a href="{{ route('projects.show', [$project->slug, $project->id]) }}" class="card--project waypoint">

Показ контроллера моего метода:

public function show($slug, $id)
{
    $project_id = Project::where('id', $id);

    $reviews = File::all()->where('fileable_id', '==', $project_id);
    $chart = Charts::database($reviews, 'bar', 'highcharts')
              ->title("Detalle de revisiones")
              ->elementLabel("Revisiones")
              ->dimensions(1000, 500)
              ->responsive(true)
              ->template('indigo-material')
              ->groupByDay()
              ->groupBy('responsable');

    $project = Project::where('slug', $slug)->first();
    $comments = Comment::orderBy('id', 'ASC');
    $files = File::orderBy('id', 'ASC');
    return view('projects.show', compact('project', 'comments', 'files', 'chart'));
}

Как я могу отправить два действительных аргумента на контроллер из представления?

1 Ответ

0 голосов
/ 25 января 2019

ваш маршрут должен быть таким

Route::get('projects/{id}/{slug}', 'ProjectController@show')->name('projects.show')
        ->middleware('permission:projects.show');

Объяснение потому что в основном вы объявили два параметра в вашей функции, ваша функция ожидает два параметра, но вы передаете только идентификатор, потому что объявление маршрута позволяет вам только передавать идентификатор надеюсь, что это работает с вами you

...