是否可以在laravel的刀片中编写php代码?

时间:2017-12-26 21:41:48

标签: laravel-5

可以在laravel的刀片中编写php代码吗? 这是我的代码

  <?php

    $orders = order::where('user_id', '=', Auth::user()->id)->get(); 
    $counts= $orders->count(); 
    $totalPrice = 0; 

    for ($i = 1; $i <= $counts ; $i++) { 
        $totalPrice += $order->cart->totalPrice; 
    } 

    echo $totalPrice; 

  ?>

3 个答案:

答案 0 :(得分:2)

有可能吗?绝对。

你应该吗?很可能不是。 Laravel基于MVC模式,该模式致力于将业务逻辑与视图分离。我认为使用控制器检索数据并将其传递给视图会更好,然后在所述视图中使用刀片模板来显示数据(在这种情况下,这意味着用{{替换<?php echo ... ?> 1}})

将业务逻辑和视图分开,除了以下内容之外,还有很多优点:

  • 可重用性,当视图仅用于显示任何通用项目列表时,它可以在多个位置使用。如果它包含像这样的特定逻辑,那么可重用性会受到很大伤害。逻辑也是如此,如果它在一个单独的控制器中,它将是可重用的。

  • 模块化,与Laravel合作时,大多数人都希望业务逻辑在控制器中(关注点分离),通过将其置于视图中使您更难找到并且您还需要更改视图虽然可能只是改变的逻辑。模块化还允许多个人同时处理单独的模块,而不必相互影响。

  • 可读性/清晰度,将逻辑放在控制器内部的方法(描述名称和文档)中(再次描述名称和文档)将告诉另一个开发人员该代码的作用并使他更容易阅读所述代码和前面提到的视图(您可以从中调用该方法)。

答案 1 :(得分:0)

简答:否

更长的答案:Blade是一个模板引擎,可以呈现您的应用程序。像那样的代码应该存在于模态中。将逻辑放入View中会使代码变得麻烦,并会回过头来咬你。

答案 2 :(得分:0)

绝对不是!因为所有这些结构都是为了将​​代码逻辑从视图中分离出来的,所以我们称之为MVC,而这个设计的目标是:

  

MVC将应用程序的各个组件分离,开发人员能够在不同组件上并行工作,而不会相互影响或阻塞。