【问题标题】:Laravel hide code if requested Path was如果请求的路径是 Laravel 隐藏代码
【发布时间】:2018-01-23 20:59:04
【问题描述】:

有什么解决方案可以在 Laravel 中为一个页面隐藏代码吗?

这样我只能显示一个请求的页面,例如:

 @if (Request::path() == 'message/send')
 @endif

隐藏路径代码有相反的作用吗?

send 之后还有一个用户名:

message/send/username

我尝试过:@if (Request::path() == 'message/send/')@if (Request::path() == 'message/send/{{$username}}') 但不起作用。

谢谢

【问题讨论】:

  • 为什么不在控制器中简单地使用一个标志?
  • 您有一个单页应用程序,您正在使用 Laravel 中的后端,并且您需要后端只能处理“消息/发送”您想要的所有其他可以由您的 SPA 处理的应用程序,这是正确的?

标签: laravel laravel-5


【解决方案1】:

为此使用request()->is()

@if (request()->is('message/send*'))

【讨论】:

    【解决方案2】:

    你可以在 laravel 中使用分段方法

        @php $member = Request::segment(1);@endphp
           @if($member =='member') 
           <style type="text/css"> .test{color: #1a393a !important;</style>
           @endif
        @endif
    

    这里我的第一个部分是会员

    【讨论】:

      【解决方案3】:

      控制器是处理请求细节的合适位置。但是,如果您仍希望在刀片视图中执行此操作:

      @if (Request::path() == 'message/send/' . $username)
      

      您不要在表达式中使用模板语法{{ }}。编译刀片模板时,@if (expr) 将转换为 &lt;?php if (expr): ?&gt;,因此在表达式中应用标准 PHP。

      【讨论】:

      • 然后我得到错误:“未定义的变量:用户名”。为什么,我用它?
      • 那你没有在视图中注册 $username ......我只是根据你的代码。
      【解决方案4】:

      路由路径比较不是这样工作的。例如:
      message/send/jwz104 永远不会等于 message/send/{{$username}}

      您可以比较路线名称:

      @if(\Request::route()->getName() == 'message.send')
      @endif
      

      这也不是一个好的解决方案。您应该在控制器中或通过视图作曲家处理此问题。

      【讨论】:

        【解决方案5】:

        与核心php-

        @if (strpos($_SERVER['REQUEST_URI'], "message/send") !== false)
        
        @endif
        

        【讨论】:

          猜你喜欢
          • 2018-05-24
          • 2023-03-21
          • 1970-01-01
          • 1970-01-01
          • 2013-09-02
          • 2018-04-17
          • 2011-05-22
          • 1970-01-01
          • 2023-02-17
          相关资源
          最近更新 更多