传递参数资源?

时间:2018-02-22 02:47:50

标签: php laravel laravel-5.5

我想将id中的routes.web.php传递给控制器​​。

我在routes/web.php

完成了
Route::resources([
    'projects/{id}' => 'ProjectsController',
]);

app/Http/Controllers/ProjectsController.php

class ProjectsController extends Controller
{
    public function __construct($id=999)
    {
        dd($id);
    }
}

未显示http://localhost:8000/projects/12中传递但显示999

的ID

有人可以帮助我,为什么传递的id没有进入控制器?

提前致谢。

3 个答案:

答案 0 :(得分:1)

如果要从控制器构造函数访问请求参数,可以注入Illuminate\Http\Request,然后访问请求参数。例如:

class ProjectsController extends Controller
{
    public function __construct(Illuminate\Http\Request $request)
    {
        dd($request->id);
    }
}

答案 1 :(得分:0)

如果你想将id传递给控制器​​

  Route::get('/path/{id}', array('uses' => 
  'YourController@yourFunction'));

然后在控制器

    class YourController extends Controller
    {
      public function yourFunction($id)
       {
         return $id;
       }
    }

答案 2 :(得分:0)

如果您希望在路线中传递ID,您可以像这样使用

Route::get('/url_path/{id}', array('uses' => 
  'YourController@yourFunction'));

//其中id传递是强制性的

或者

Route::get('/url_path/{id?}', array('uses' => 
  'YourController@yourFunction')); 

//其中id pass是Optional 然后在控制器

class YourController extends Controller
{
  public function yourFunction($id)
   {
     return $id;
   }
}