控制器的可重用功能放在哪里
Where to put reusable functions of Controller
我创建了一个函数,例如getAllCitiesOfLocations()。这个功能为我提供了城市的聚合。我想让这个功能像例如用于ServiceController的索引函数。在索引函数内部,我想调用函数 getAllCitiesOfLocations() 来获取信息,然后将其传递给视图。
但是,我要提醒,从另一个控制器调用函数是不正确的风格。此外,我红了,我应该创建一个助手 class。不幸的是,当我搜索有关如何创建助手 class 的信息时,我只找到有关为视图创建助手 classes 的信息。你能告诉我吗
1.) 我应该把函数放在哪里,如果需要的话应该由不同的控制器调用,
2.) 当它不在同一个控制器中时,我如何稍后调用该函数?
public function getAllCitiesOfLocations(){
$cities = DB::table('locations')
->select('city')
->groupBy('city')
->get();
return $cities;
}
这种功能属于模型,而不属于控制器。一般来说,如果它处理数据库,你把东西放在模型中。
你可以像这样使用助手class
namespace App\Services;
class Helper {
public static function getAllCitiesOfLocations(){
// Code goes here
}
}
我通常将其存储在 app/services 文件夹中,但您可以将其放在任何您喜欢的位置。然后在您的控制器中,您可以像这样访问它们:
App\Services\Helper::getAllCitiesOfLocations();
您还可以让 laravel 自动加载此 class,方法是将其添加到 config/app.php
中的别名数组中
'Helper' => App\Services\Helper::class
然后当从您的助手 class 调用方法时,您只需
Helper::getAllCitiesOfLocations();
你想要做的是拥有一个模型。然后,您可以在任何您想要的控制器中使用该模型。
请阅读 http://requiremind.com/a-most-simple-php-mvc-beginners-tutorial/ 以开始使用 MVC 模型。
我创建了一个函数,例如getAllCitiesOfLocations()。这个功能为我提供了城市的聚合。我想让这个功能像例如用于ServiceController的索引函数。在索引函数内部,我想调用函数 getAllCitiesOfLocations() 来获取信息,然后将其传递给视图。
但是,我要提醒,从另一个控制器调用函数是不正确的风格。此外,我红了,我应该创建一个助手 class。不幸的是,当我搜索有关如何创建助手 class 的信息时,我只找到有关为视图创建助手 classes 的信息。你能告诉我吗
1.) 我应该把函数放在哪里,如果需要的话应该由不同的控制器调用,
2.) 当它不在同一个控制器中时,我如何稍后调用该函数?
public function getAllCitiesOfLocations(){
$cities = DB::table('locations')
->select('city')
->groupBy('city')
->get();
return $cities;
}
这种功能属于模型,而不属于控制器。一般来说,如果它处理数据库,你把东西放在模型中。
你可以像这样使用助手class
namespace App\Services;
class Helper {
public static function getAllCitiesOfLocations(){
// Code goes here
}
}
我通常将其存储在 app/services 文件夹中,但您可以将其放在任何您喜欢的位置。然后在您的控制器中,您可以像这样访问它们:
App\Services\Helper::getAllCitiesOfLocations();
您还可以让 laravel 自动加载此 class,方法是将其添加到 config/app.php
'Helper' => App\Services\Helper::class
然后当从您的助手 class 调用方法时,您只需
Helper::getAllCitiesOfLocations();
你想要做的是拥有一个模型。然后,您可以在任何您想要的控制器中使用该模型。
请阅读 http://requiremind.com/a-most-simple-php-mvc-beginners-tutorial/ 以开始使用 MVC 模型。