路线功能意义

时间:2017-10-26 01:06:00

标签: php laravel

我很难理解这段代码在做什么。有人可以向我解释一下吗?我看到有人使用它将用户重定向到另一个页面,但我不明白这部分"['id'=>$data3->id]) ".

以下是完整代码:(来自查看页面)

<a href="{!! route('user.upload.image', ['id'=>$data3->id])  !!}">

控制器(如何将data3传递给视图):

public function getInfo($id) {
      $data3=UserImage::where('user_id',$id)->get();
 return view('view',compact('data3'));

路线:

Route::get('/userUpload/{user}/create1','CreateController@create1')->name('user.upload.iamge');
Route::get('user/show/{id}','HomeController@getInfo')->name("user.show");

create1 controller:

    public function create1(personal_info $user){
     return view('create1')->withUser($user);
}

1 个答案:

答案 0 :(得分:1)

根据您的routes

Route::get('/userUpload/{user}/create1','CreateController@create1')->name('user.upload.iamge');
Route::get('user/show/{id}','HomeController@getInfo')->name("user.show");

第一个route有一个parameter user,必须在route被调用时随时传递给它。

第二个参数也有一个id参数,也必须传递给它。

parameter值传递给路径可以通过多种方式完成。例如

使用route name

<a href="{!! route('user.upload.image', ['user'=>$data3->id]) !!}">

此方法要求您将所有parameters作为数组传递,参数名称为数组的key

您也可以拨打以下路线:

<a href="/userUpload/{$data3->id}/create1">

由于参数已被硬编码到网址中,因此无需任何操作。

如果您在路线中接受parameters,将其传递给您的控制器或route function,则必须按照排列顺序列出。

因此,您的getInfo将从路由收到的id参数传递给控制器​​

public function getInfo($id) {
      $data3=UserImage::where('user_id',$id)->get();
 return view('view',compact('data3'));
}