加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – 在laravel 5.1中安全和清理代码

发布时间:2020-12-14 19:44:26 所属栏目:大数据 来源:网络整理
导读:事实上,我有一个关于代码清理的问题 我试图在刀片文件中获得一些价值,我在两种方法之间感到困惑 我认为两者都是正确的,但我需要知道谁更干净,更安全 我的刀片直接使用Eloquent的第一种方法 @foreach (Auth::user()-company-country-cities as $city) {{$city
事实上,我有一个关于代码清理的问题
我试图在刀片文件中获得一些价值,我在两种方法之间感到困惑
我认为两者都是正确的,但我需要知道谁更干净,更安全

我的刀片直接使用Eloquent的第一种方法

@foreach
    (Auth::user()->company->country->cities as $city) {{$city->name}}
@endforeach

使用Injecting Services的第二种方法是在我的模型中创建此方法,并使用laravel 5.1 Injecting Services在我的刀片中使用它

public function getCity()
{
    foreach(Auth::user()->company->country->cities as $city) {
        return $city->name ;
      // OR 
        return $city ;  
          //  i think this is one of benefits to use this approach   
          //  because in my view i can  use getCity()->id or getCity()->name
    }
}

谢谢你的时间 .

解决方法

从模型获取数据的最佳位置是在控制器中,然后将数据传递给视图:

这是任何关注点分离的MVC架构的关键点:控制器的目的是从模型中获取数据并将其传递给视图.视图的目的是从控制器获取数据并显示它.因此,视图唯一需要的是从控制器传递的变量

这样,应用程序逻辑就会保存在控制器中,您可以轻松地保存应用程序.所以:

在你的控制器中:

public function index()
{
    //get data from model
    $cities = Auth::user()->company->country->cities; 

    //pass the data to the view 
    return View::make('your_view',['cities' => $cities] );
}

然后,在您的视图中:

@foreach ($cities as $city)
     {{$city->name}}
@endforeach

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读