laravel在路线中发送参数

时间:2017-11-03 04:30:52

标签: laravel laravel-5 laravel-5.4

无论如何都要做这样的事情,

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');
        }   
    }

2 个答案:

答案 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...  
}