Php 在资源中传递参数?
我想将Php 在资源中传递参数?,php,laravel,laravel-5.5,Php,Laravel,Laravel 5.5,我想将routes.web.php中的id传递给控制器 我已经在routes/web.php中完成了 Route::resources([ 'projects/{id}' => 'ProjectsController', ]); 在app/Http/Controllers/ProjectsController.php: class ProjectsController extends Controller { public function __construct($id
routes.web.php
中的id
传递给控制器
我已经在routes/web.php中完成了
Route::resources([
'projects/{id}' => 'ProjectsController',
]);
在app/Http/Controllers/ProjectsController.php
:
class ProjectsController extends Controller
{
public function __construct($id=999)
{
dd($id);
}
}
它不显示传入的idhttp://localhost:8000/projects/12
但显示999
有人能帮我解释一下为什么传递的id没有进入控制器吗
提前谢谢。
如果要将id传递给控制器
Route::get('/path/{id}', array('uses' =>
'YourController@yourFunction'));
然后在控制器中
class YourController extends Controller
{
public function yourFunction($id)
{
return $id;
}
}
class YourController extends Controller
{
public function yourFunction($id)
{
return $id;
}
}
如果要从控制器构造函数访问请求参数,可以插入illighted\Http\request
,然后访问请求参数。例:
class ProjectsController extends Controller
{
public function __construct(Illuminate\Http\Request $request)
{
dd($request->id);
}
}
如果您希望在您的路线中传递id,您将这样使用
Route::get('/url_path/{id}', array('uses' =>
'YourController@yourFunction'));
//身份证是强制性的
否则
Route::get('/url_path/{id?}', array('uses' =>
'YourController@yourFunction'));
//其中id通行证是可选的
然后在控制器中
class YourController extends Controller
{
public function yourFunction($id)
{
return $id;
}
}
class YourController extends Controller
{
public function yourFunction($id)
{
return $id;
}
}
参数不应在构造中,应在restful API中定义。例如函数索引($id)
@caoglish谢谢。我添加了construct,因为我希望在类的每个函数中都有id。有什么方法可以使用它吗?只需在每个函数中添加$id即可。没有捷径