我正在使用带有faker的yii2控制台,这就是我在迁移代码中所拥有的
public function safeUp()
{
$faker = Faker\Factory::create();
for( $i= 0; $i<20; $i++){
$this->insert('tbl_user',array(
'username' =>$faker->userName,
'password_hash' => \Yii::$app->security->generatePasswordHash(5378),
'email'=>$faker->email ,
'status'=>10,
'auth_key'=>Yii::$app->security->generateRandomString(),
'created_at'=>$faker->unixTime($max = 'now'),
'updated_at'=>$faker->unixTime($max = 'now'),
'profile_pic'=>$faker->image(Yii::getAlias("uploads"), $width = 640, $height = 480, 'cats', false)
));
}
}
问题出现在profile_pic部分,它总是抛出错误
Cannot write to directory "uploads"
我已经为文件夹上传添加了读取和写入权限,但仍然失败
通过ls -ld uploads
检查权限,然后返回
drwxrwxrwx 3 //shows the read write and even execute permissions are set
可能出现什么问题?
答案 0 :(得分:1)
Alias参数应该有&#34; @&#34;登录
答案 1 :(得分:1)
如果您的uploads目录位于应用程序的基本路径中,则代码应如下所示:
...
'profile_pic'=>$faker->image(Yii::getAlias('@web/path_to/uploads'), $width = 640, $height = 480, 'cats', false)
...
您应该将别名调整到上传目录所在的位置。 在上面的示例中&#39; @ web&#39;指的是当前运行的Web应用程序的基本URL。以下是您可以使用的预定义别名列表:http://www.yiiframework.com/doc-2.0/guide-concept-aliases.html#predefined-aliases
以下是有关解决别名的更多信息:http://www.yiiframework.com/doc-2.0/guide-concept-aliases.html#resolving-aliases