【发布时间】:2015-10-02 09:42:51
【问题描述】:
我正在尝试创建一个自定义类,可以调用它来为 MySQL 转换日期和时间。
我使用的是 Yii2 Basic 模板
我在名为 Convert.php 的组件中创建了一个文件夹和一个文件
<?
namespace app\components;
use Yii;
class Convert
{
const DATE_FORMAT = 'php:Y-m-d';
const DATETIME_FORMAT = 'php:Y-m-d H:i:s';
const TIME_FORMAT = 'php:H:i:s';
public static function toMysql($dateStr, $type='date', $format = null) {
if ($type === 'datetime') {
$fmt = ($format == null) ? self::DATETIME_FORMAT : $format;
}
elseif ($type === 'time') {
$fmt = ($format == null) ? self::TIME_FORMAT : $format;
}
else {
$fmt = ($format == null) ? self::DATE_FORMAT : $format;
}
return \Yii::$app->formatter->asDate($dateStr, $fmt);
}
}
?>
然后我尝试在我的控制器中调用此方法
use app\components\Convert;
...
public function actionCreate()
{
...
$model->date_of_birth = Convert::toMysql($model->date_of_birth);
...
}
但是我收到以下错误
无法在文件中找到“app\components\Convert”:/var/www/html/portal/components/Convert.php。缺少命名空间?
我可能遗漏了一些简单的东西,但我看不到它。
感谢您的帮助。
利亚姆
从cmets中,我发现错误是一个简单的错误,开始标签应该是
<?php
【问题讨论】:
-
在 Yii 配置文件中你必须告诉 Yii 从你的 Components 文件夹中导入文件夹,否则你的类是不可见的。
-
对不起,你错了 MrD,你不需要在 Yii2 中导入类,它会自动加载
-
这可能只是一个短暂的开放标签问题,您应该始终使用
<?php -
soju,我想你可能就在这里.. 会告诉你,我有更多错误,哈哈
-
好的,谢谢soju,上面代码的问题是开始标签,我真是个白痴。烧酒,你想添加一个答案吗,我会打勾
标签: namespaces yii2