Php 与文章一起保存图像的问题

Php 与文章一起保存图像的问题,php,rest,file-upload,laravel-5,Php,Rest,File Upload,Laravel 5,我很确定这是一个noob问题,尽管我习惯于PHP,但不习惯于Laravel 我的目标再简单不过了,我希望能够写一篇文章并向其中添加一个图像,但即使我让上传系统正常工作(这不是小菜一碟),我在保存文件名本身时也遇到了问题 下面是我如何进行的: use App\Photo; use Illuminate\Http\Request; use Intervention\Image\Facades\Image; public function store(Request $request) {

我很确定这是一个noob问题,尽管我习惯于PHP,但不习惯于Laravel

我的目标再简单不过了,我希望能够写一篇文章并向其中添加一个图像,但即使我让上传系统正常工作(这不是小菜一碟),我在保存文件名本身时也遇到了问题

下面是我如何进行的:

use App\Photo;
use Illuminate\Http\Request;
use Intervention\Image\Facades\Image;

public function store(Request $request)
{

    $file = $request->file('image');
    $originalname = $file->getClientOriginalName();
    $path = 'uploads/' . $originalname;
    Image::make($file)->save($path);

    $product = new Photo(array(
        'name' => $request->get('name'),
        'image' => $originalname
    ));

    $product->save();

    return \Redirect::route('photo.index', array($product->id))->with('message', 'Product added!');
}
这是我的迁移文件,如果有帮助的话:

public function up()
{
    Schema::create('photos', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('image');
        $table->timestamps();
    });
}
因此,我想将文件名保存为数据库中的字符串,以便稍后调用它,如使用
$product->image
,但我遇到以下错误:

SQLSTATE[HY000]: General error: 1364 Field 'image' doesn't have a default value (SQL: insert into `photos` (`name`, `updated_at`, `created_at`) values (sisdjfposd, 2017-05-31 22:42:18, 2017-05-31 22:42:18))
所以我知道它的意思,我不喜欢它,因为它应该有一个值:如果我添加
die($originalname)
$product=new Photo array(
)行之前,我获取文件名,因此从逻辑上讲,变量不是空的

那我为什么会犯这个错误?我是不是遗漏了什么


提前谢谢你

我想你错过了在批量作业中添加
图像
字段

在您的照片模型中,只需添加:

 protected $fillable = ['name', 'image'];
有关批量分配的详细信息:

@Jaeger,如果答案解决了您的问题,请接受