Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel路线上的PSR7:访问最新参数_Php_Laravel_Lumen_Psr 7 - Fatal编程技术网

Php Laravel路线上的PSR7:访问最新参数

Php Laravel路线上的PSR7:访问最新参数,php,laravel,lumen,psr-7,Php,Laravel,Lumen,Psr 7,嗨,有下一条路线吗 Route::get('/{param1}', 'Http\Controllers\SomeController@getCollection'); Route::get('/{param_for_middleware}/{param1}', 'Http\Controllers\SomeController@getCollection'); 在我的控制器上,我有 // PSR7 code use Illuminate\Routing\Contr

嗨,有下一条路线吗

Route::get('/{param1}',
        'Http\Controllers\SomeController@getCollection');
Route::get('/{param_for_middleware}/{param1}',
        'Http\Controllers\SomeController@getCollection');
在我的控制器上,我有

// PSR7 code
use Illuminate\Routing\Controller;
use Psr\Http\Message\ServerRequestInterface;

class SomeController extends Controller
    public function getCollection(ServerRequestInterface $request)
    {
        // here, I need access to param1
        dd($request);
    }
}

使用原始的Laravel路由器,我们可以通过
$this->route()->parameters()['param1]
获得价值。但是,当我们在Laravel上使用PSR7时?

您可以,仍然使用好的旧方法吗

public function getCollection(ServerRequestInterface $request, $param1)
{
    // here is your param1!
    dd($param1);
}
编辑

如果需要多个参数并需要确保其位置,可以执行以下操作:

public function getCollection(
    ServerRequestInterface $request,
    \Illuminate\Http\Request $illuminateRequest
)
{
    // here is your param1 & param_for_middleware!
    dd($illuminateRequest->route('param1') . ' & ' .
       $illuminateRequest->route('param_for_middleware'));
}

为什么不使用$request->get('param1')???像往常一样..因为
get()
没有在
Zend\\Diactoros\\ServerRequest
上定义,所以不要在
Route::get('/{param\u for_middleware}/{param1}',Http\Controllers上工作\SomeController@getCollection');{param\u for_middleware}
,而不是
{param1}
Yep提供了另一种@pablorsk