无论如何都要做这样的事情,
web.php中的
Route::get('/test', 'testController@test');
在测试控制器中
public function test ($url)
{
//while $url store test in route
}
我知道只有发送参数我必须使用
Route::get('/{test}', 'testController@test');
更新
我想做这样的事情
Route::get('/test', 'testController@test');
Route::get('/test2', 'testController@test');
在我的控制器中
public function test ($url)
{
while $url store test,test2in route
}
最新更新
我不想使用{url}
当我输入url / test
时,我想制作/ test = $ url在我的web.php中,我使用了这个
Route::get('/test', 'testController@test');
Route::get('/test2', 'testController@test');
我想做这样的事情的原因是因为我想制作一个alll路线可以使用的功能在我的控制器中我这样做。
public function test($url,$preview=null)
{
//$url shoud be test or test 2
try {
$test = (isset($preview)) ? test::where('test.id',$url)->first()
} catch (\Exception $e) {
return redirect('notfound');
}
}
我不想要像这样的东西
Route::get('/test', 'testController@test');
Route::get('/test2', 'testController@test');
和控制器
public function test($preview=null)
{
//$url shoud be test or test 2
try {
$test = (isset($preview)) ? test::where('test.id','test)->first()
} catch (\Exception $e) {
return redirect('notfound');
}
}
答案 0 :(得分:1)
你需要结合两个元素
Route::get('/test/{url}', 'testController@test');
想要/ test = $ url
你不能,但你可以改为/test?foo=$url
。所以你保持你的路线
Route::get('/test', 'testController@test');
然后添加Request $request
作为控制器方法参数(并删除$url
)
public function test(Request $request) {
...
最后,您使用
获取您的网址$url = $request->input('foo');
答案 1 :(得分:0)
你的路线
Route::post('/test', 'testController@test')->name('test);
如果使用刀片。
<a href="{{ route('test') }}"
onclick="event.preventDefault();
document.getElementById('test_id').submit();">
Test Click
</a>
{!! Form::open(['url' => route('test'), 'method' => 'post', 'id' => 'test_id']) !!}
<input type="hidden" name="url" value="{{ $url}}">
{!! Form::close() !!}
在您的控制器中。
public function test(Request $request)
{
$data = $request->all();
$url = $data['url'];
//do something with your url...
}