我正在尝试使用一些可以在项目中的任何地方使用的常用函数构建一个类。我不知道该在哪里构建带有类的PHP文件或如何调用它们...谁能帮我弄清楚所有这些东西都适合放在哪里?谢谢!!!
/App/Http/Helpers/MyClasses.php
<?php
class PopularFunctions {
public function sayhi() {
echo 'hi';
}
}
?>
/App/Http/Controllers/TasksController.php
<?php
namespace App\Http\Controllers;
use App\Http\Helpers\MyClasses;
class TasksController extends Controller {
public function index() {
$myfunctions = new PopularFunctions();
$myfunctions->sayhi();
}
}
这将返回:找不到类'App \ Http \ Controllers \ PopularFunctions'。
答案 0 :(得分:0)
在Laravel Framework中,您只能在app \ Http \ Controller文件夹内创建一个控制器。如果要创建自定义类,则在app文件夹中创建。
示例:
文件:app \ FAReports.php
命名空间应用;
FAReports类
// DEF //
}
答案 1 :(得分:0)
在 App / Http
内创建一个名为“ Helpers”的目录在Helpers目录CustomAvatar.php
内创建一个类
<?php
class CustomAvatar{
public $default_avatar='avatar.png';
public function make_custom_avatar(){
// do your operation here
}
}
?>
现在是否要在控制器中使用此类:
use App\Http\Helpers\CustomAvatar;
...
public function create_user(){
$customAvatar=new CustomAvatar();
$defaultAvatar = $customAvatar->default_avatar;
$user=new User();
$user->avatar=$defaultAvatar;
$user->save();
}
答案 2 :(得分:0)
1。通过Composer
App / Http / Helpers / MyClasses.php
<?php
function sayhi() {
echo 'hi';
}
?>
然后在"autoload": { }
的composer.json中添加
"files": [
"app/Http/Helpers/MyClasses.php"
]
因此结构应为
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\\": "app/"
},
"files": [
"app/Http/Helpers/MyClasses.php"
]
},
更改自动加载后。然后运行composer dump-autoload
然后在控制器中只需在您的助手中调用该函数
public function index() {
$res = say_hi();
}
2。班级
App / Http / Helpers / MyClasses.php
<?php
namespace App\Http\Helpers;
class MyClassess {
function sayhi() {
echo 'hi';
}
}
?>
在您的控制器中
<?php
namespace App\Http\Controllers;
use App\Http\Helpers\MyClasses;
class TasksController extends Controller {
public function index() {
$myfunctions = new MyClasses();
$res = $myfunctions->sayhi();
}
}
答案 3 :(得分:0)
您的原始代码无效,因为您没有为助手类命名空间。 应该是:
/App/Http/Helpers/MyClasses.php
<?php
namespace App\Http\Helpers; //this was missing in your code
class PopularFunctions {
public function sayhi() {
echo 'hi';
}
}
?>