可以由多个控制器和命令使用的Laravel方法。应该在哪里?

用户名

我想定义一个可由多个控制器和命令使用的“全局”方法。它应该放在Laravel 5.4中的什么位置?

假设我有以下控制器。我该如何称呼“全局”方法,以及该“全局”方法的确切位置在哪里?

<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;

use App\Flight;

class FlightsController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Index
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $flights = Flight::where('active', 1)
               ->orderBy('name', 'desc')
               ->take(10)
               ->get();

        foreach ($flights as $flight) {
            if ( $flight->price == 0 )
            {
                $output = "some value";
            }
            else
            {
                $output = "some other value";
            }
        }

        return view('flights.index')
                ->with(['output'   => $output])
                ;
    }
}
莫波

当您想要一种可获取许多模型的方法,并且想要在许多地方使用它时,请将其放在存储库中:

class FlightRepository
{
    public function getLastTenFlights()
    {
        return Flight::where('active', 1)
           ->orderBy('name', 'desc')
           ->take(10)
           ->get();
    }
}

例如,从您的控制器:

public function index( FlightRepository $repo )
{
    $flights = $repo->getLastTenFlights();

    //if you want you can put this additional login in the method too... 
    foreach ($flights as $flight) {
        if ( $flight->price == 0 )
        {
            $output = "some value";
        }
        else
        {
            $output = "some other value";
        }
    }

    return view('flights.index')
            ->with(['output'   => $output])
            ;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我的表单需要其他数据,我应该在哪里放置路由和控制器方法来获取它?

我应该在哪里放置逻辑以加载视图控制器?

我应该在哪里在模型或控制器中编写查询(序列化)?

我应该在哪里安装TFS 2013测试控制器?

我应该在哪里获取推文?(控制器,模型,助手等)

我应该在哪里放置一个我想在多个控制器中使用的函数,而不仅仅是在我创建它的控制器中?

如果我的应用程序在各种视图控制器中都使用位置管理器,我应该在哪里实例化它?

我应该在控制器和域服务之间放置命令总线吗?

我应该在哪里调用使用数据的方法?

当您应该在Rails应用程序中使用控制器中的变量时,将javascript代码放在哪里?

可以或应该在控制器#action 中使用 Task.async() 吗?

在Laravel中,我应该在回购或控制器中触发事件和电子邮件的位置?

我应该在哪里把事件监听器?

使用 Rails 5,在哪里创建也可以由控制器使用的后台作业方法?

Laravel Homestead的Vagrantfile:$ confDir应该在哪里设置?

如果Android中有多个类,应该在哪里实现AsyncTask类的方法?

Angular的新功能:这应该在服务中使用还是可以保留在控制器中?

我应该在哪里放置接口和实现

使用管道和订阅时,我的加载控制器应该放在哪里?

我应该在哪里实现类方法?

我应该在哪里实施碰撞检查方法?

PHPUnit:应该在哪里抛出异常(expectException方法)?

我的JavaScript应该在哪里使用View组件?

我应该在哪里使用 'use' 在 php 中?

我应该在哪里使用“ swapgs”指令

这里应该在哪里使用打印功能?

我们应该在 SpringBoot 中将 @Scheduled 与控制器方法(如 @PostMaping)一起使用吗?

我应该在哪里放置应用程序的yiic文件来执行控制台命令?

我应该在哪里使用MVC方法来处理变量?