我创建了一个类似于getAllCitiesOfLocations()。这个功能为我提供了一系列城市。我希望这个功能可重复使用,例如用于ServiceController的索引功能。在index函数中,我想调用函数getAllCitiesOfLocations()来获取信息,然后将其传递给视图。
然而,我是红色的,从另一个控制器调用函数是不合适的风格。而且,我是红色的,我应该创建一个帮助类。不幸的是,当我搜索有关如何创建帮助程序类的信息时,我只找到有关为视图创建帮助程序类的信息。你能告诉我吗
1。)我应该把功能放在哪里,如果需要,应该由不同的控制器调用,
2。)如果函数不在同一个控制器内,我以后如何调用该函数?
public function getAllCitiesOfLocations(){
$cities = DB::table('locations')
->select('city')
->groupBy('city')
->get();
return $cities;
}
答案 0 :(得分:2)
这种功能属于模型,而不属于控制器。通常,如果它处理数据库,你就把东西放在模型中。
答案 1 :(得分:1)
你可以使用像这样的辅助类
namespace App\Services;
class Helper {
public static function getAllCitiesOfLocations(){
// Code goes here
}
}
我通常将它存储在app / services文件夹中,但您可以随意使用它。然后在您的控制器中,您可以像这样访问它们:
App\Services\Helper::getAllCitiesOfLocations();
您还可以将laravel自动加载此类,方法是将其添加到config/app.php
'Helper' => App\Services\Helper::class
然后在从Helper类调用方法时,只需
Helper::getAllCitiesOfLocations();
答案 2 :(得分:1)
您要做的是拥有模型。然后,您可以在您想要的任何控制器中使用该模型。
请阅读http://requiremind.com/a-most-simple-php-mvc-beginners-tutorial/以开始使用MVC模型。