【问题标题】:Laravel | How to know the Request url comming from拉拉维尔 |如何知道来自的请求 url
【发布时间】:2018-07-25 17:41:34
【问题描述】:

你好

我有一个表单,我可以从不同的刀片运行但指向同一个控制器

提交数据后,我想知道来自它的请求的 url 或路由,然后将用户重定向到其他路由

public function store(Request $request) {

 $request = $request->all();
 $new = App\Model::create($request);
 $new->save();

 if ( Request comming from url or route x ) {
     return redirect()->back();
 } else {
      return redirect()->route('route');
   }

}

【问题讨论】:

    标签: laravel routes request


    【解决方案1】:

    只需使用 url() 帮助器,它将为您提供当前的请求 url:

    url()->current();
    

    // Without Query String...
    $url = $request->url();
    
    // With Query String...
    $url = $request->fullUrl();
    

    【讨论】:

    • url()->current() 给我动作 url url()->previous() 给我以前的 url (example.com/previous 最后两个给我这个错误Call to a member function fullUrl() on array 我想比较之前的url来重定向用户
    • 什么意思?
    • 我也很难理解他的意图。但这是我最终理解的:他有两条路线,每条路线都服务于一种形式。两种形式都将数据提交到相同的第三条路线。然后他需要在第三条路由的控制器动作中知道数据来自哪个路由。
    • 抱歉问题出在我的英语上,我会继续努力的,抱歉
    【解决方案2】:

    解决方案

            if ( app('router')->getRoutes()
                              ->match(app('request')
                              ->create(URL::previous()))
                              ->getName() 
                              == 
                              'factures.create') {
    
            return redirect()
                ->back();
        } else {
    
    
            return redirect()
                ->route('clients.index');
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-07
      • 2019-11-26
      • 2014-02-22
      • 2021-08-20
      • 2020-12-12
      • 2018-05-29
      • 2015-12-08
      相关资源
      最近更新 更多