我需要在Laravel 5.6中将两个参数从视图传递给控制器

时间:2019-01-25 15:18:48

标签: php laravel controller laravel-blade

就像标题中所说,我需要从刀片中向控制器发送两个变量,但是当我这样做时,下面会出现错误

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 :(得分:1)

您的路线应该是这样

<my-list>
  <div class="list">
    <list-item><div>ListItem</div></list-item>
    <list-item><div>ListItem</div></list-item>
    <list-item><div>ListItem</div></list-item>
  </div>
</my-list>

说明 因为主要是您在函数中声明了两个参数,而函数却期望有两个参数,但是您只传递了id,因为您的路由声明只允许传递了id 希望它与您合作