【问题标题】:Returning a variable from a filter. Laravel 4从过滤器返回一个变量。拉拉维尔 4
【发布时间】:2014-02-11 02:07:30
【问题描述】:

我是 Laravel 的新手,我正在尝试设置一些基本的路由逻辑。我有一条可以处理特定 URL 模式的路由。这些 URL 通常是一个 ajax 请求(为弹出窗口返回数据)。但是,禁用 javascript 的搜索引擎和用户将遵循正常链接,因此我希望在单独的页面上返回数据。为此,我需要确定请求是否为 ajax。我知道我可以这样做:

if(Request::ajax()){
   //
}

我的计划是将此作为附加到路线的“之前”过滤器的一部分。如果我的想法是正确的,我需要从过滤器返回一个布尔 ajax=true/false。也许这是一个非常简单的问题,但是我找不到任何地方可以解释您如何从过滤器中实际返回这样的值?我能找到的一切似乎都假设任何过滤器逻辑的默认结果都必须是重定向。

谢谢

编辑:我得出的结论是,我根本没有按照预期的方式使用过滤方法,只是将处理程序放在我的控制器方法中。但我仍然想知道是否可以从过滤器返回数据。

【问题讨论】:

    标签: laravel-4


    【解决方案1】:

    在控制器中:

    if(Request::ajax()){
    
      return Response::json(['message' => 'Hi. Your request was ajax!', 'status' => 1]);
    }
    

    【讨论】:

    • 嗨,谢谢。我现在确实在我的控制器中使用逻辑。不过,这实际上并没有回答我原来的问题?
    【解决方案2】:

    我为此找到的简单解决方案是使用Session::flash,它只为下一个请求填充数据,您可以在任何地方轻松获得结果。例如:

    Route::filter('something', function() {

    如果(假){

    查看:make('错误); // 或者你想要的时候

    } 其他 {

    返回会话:flash('result_var', $my_result_var);

    }

    });

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-08
      • 2018-11-12
      • 1970-01-01
      • 2021-08-15
      • 1970-01-01
      • 2017-10-02
      • 2018-05-16
      • 2014-08-31
      相关资源
      最近更新 更多