将静态内容保存到 Laravel public 文件夹中
Saving static content into the Laravel public folder
我无法将图像存储在 Laravel 框架的 'public' 文件夹中(我认为这是静态内容文件夹?如果我错了请纠正我)。
我正在 运行 使用生成图像并将图像存储在 URL 中的 faker 生成种子 table。这一切都正常工作,但种子本身一直失败,因为它似乎无法访问或找到我创建的 public 文件夹中的文件夹。这是我的 public 文件夹结构:
/public/assets/images
这是我的种子,应该将我的图像保存到这个文件夹中:
<?php
use Illuminate\Database\Seeder;
class ProductsTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::table('products')->truncate();
$faker = Faker\Factory::create();
$limit = 30;
for($i = 0; $i < $limit; $i++) {
DB::table('products')->insert([
'title' => $faker->name,
'SKU' => $faker->name,
'description' => $faker->text,
'created_at' => $faker->dateTime,
'updated_at' => $faker->dateTime,
'images' => $faker->image(URL::to(Config::get('assets.images')) ,800, 600, [], [])
]);
}
}
}#
'assets.images' 配置文件是:
<?php
return [
'images' => '/assets/images'
];
当我尝试 运行 种子填充我的数据库时,出现以下错误:
[InvalidArgumentException]
Cannot write to directory "http://localhost:8931/assets/images"
我看不出哪里错了。谁能提供任何见解?
我不是 laravel 专家,但抛出的异常看起来像是您正在尝试写入 url 而不是磁盘上的文件路径。
也许您想检查进程所有者 运行 php 脚本是否具有对该位置的写入权限。
使用辅助函数 public_path() 将 URL:: 的调用更改为 :
$faker->image(public_path(Config::get('assets.images')) ,800, 600, [], [])
我无法将图像存储在 Laravel 框架的 'public' 文件夹中(我认为这是静态内容文件夹?如果我错了请纠正我)。
我正在 运行 使用生成图像并将图像存储在 URL 中的 faker 生成种子 table。这一切都正常工作,但种子本身一直失败,因为它似乎无法访问或找到我创建的 public 文件夹中的文件夹。这是我的 public 文件夹结构:
/public/assets/images
这是我的种子,应该将我的图像保存到这个文件夹中:
<?php
use Illuminate\Database\Seeder;
class ProductsTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::table('products')->truncate();
$faker = Faker\Factory::create();
$limit = 30;
for($i = 0; $i < $limit; $i++) {
DB::table('products')->insert([
'title' => $faker->name,
'SKU' => $faker->name,
'description' => $faker->text,
'created_at' => $faker->dateTime,
'updated_at' => $faker->dateTime,
'images' => $faker->image(URL::to(Config::get('assets.images')) ,800, 600, [], [])
]);
}
}
}#
'assets.images' 配置文件是:
<?php
return [
'images' => '/assets/images'
];
当我尝试 运行 种子填充我的数据库时,出现以下错误:
[InvalidArgumentException]
Cannot write to directory "http://localhost:8931/assets/images"
我看不出哪里错了。谁能提供任何见解?
我不是 laravel 专家,但抛出的异常看起来像是您正在尝试写入 url 而不是磁盘上的文件路径。
也许您想检查进程所有者 运行 php 脚本是否具有对该位置的写入权限。
使用辅助函数 public_path() 将 URL:: 的调用更改为 :
$faker->image(public_path(Config::get('assets.images')) ,800, 600, [], [])