我正在开发 Yii 应用程序。我正在尝试在我的主要配置参数中设置一些路径,如下所示:
// application-level parameters that can be accessed
// using Yii::app()->params['paramName']
'params'=>array(
'paths' => array(
'imageTemp'=> Yii::getPathOfAlias('webroot').'/files/temp-',
'image'=> Yii::getPathOfAlias('webroot').'/files/',
...
),
'urls' => array(
'imageTemp'=> Yii::app()->getBaseUrl().'/files/temp-',
'image'=> Yii::app()->getBaseUrl().'/files/',
...
),
但是我收到了这个错误:
Fatal error: Call to a member function getBaseUrl() on a non-object in ..blahblah../base/CApplication.php on line 553
我想我不能在配置文件中使用 Yii::app() 因为应用程序还没有在这里初始化,或者类似的东西。那么,如何替换配置文件中的 Yii::app()->getBaseUrl()
并获得相同的结果?
最佳答案
你是对的,你不能在配置的返回数组中使用 Yii::app() 方法,但你可以在外部使用 Yii::getPathOfAlias()
。这样的事情可能会起作用:
$webroot = Yii::getPathOfAlias('webroot');
return array(
...
'params'=>array(
'paths' => array(
'imageTemp'=> $webroot.'/files/temp-',
'image'=> $webroot.'/files/',
...
),
),
);
假设 webroot
是预先定义的。
至于 baseUrl...我会在那个问题上回复您!
[返回...]
如果你需要一个 url,这完全取决于你的图像文件保存在哪里,相对于 yii 路径,还是相对于 web 根目录?
如果是 web root 的基础,你可以使用:
return array(
...
'urls'=>array(
'paths' => array(
'imageTemp'=> '/files/temp-',
'image'=> '/files/',
...
),
),
);
关于php - Yii - 如何访问主配置中的基本 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13269053/