Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将图片上传到laravel中的数据库_Php_Database_Laravel_Image Uploading - Fatal编程技术网

Php 将图片上传到laravel中的数据库

Php 将图片上传到laravel中的数据库,php,database,laravel,image-uploading,Php,Database,Laravel,Image Uploading,我已经创建了一个表单,用户可以在其中添加新闻,我希望他们也能够上传图片。我也尝试过阅读其他用户创建的上传表单,但无法理解。 上传的图片需要在我创建的数据库中存储图片路径和所有其他信息。 原因是我想稍后显示用户创建的新闻和图片,以便查看。 所以我需要一些帮助,因为我不太明白如何做到这一点,我是一个初学者在拉威尔。我不想使用任何.js或其他脚本,因为我想先学习这些基础知识 我的数据库: class NyhetsmodulTable extends Migration { public f

我已经创建了一个表单,用户可以在其中添加新闻,我希望他们也能够上传图片。我也尝试过阅读其他用户创建的上传表单,但无法理解。 上传的图片需要在我创建的数据库中存储图片路径和所有其他信息。 原因是我想稍后显示用户创建的新闻和图片,以便查看。 所以我需要一些帮助,因为我不太明白如何做到这一点,我是一个初学者在拉威尔。我不想使用任何.js或其他脚本,因为我想先学习这些基础知识

我的数据库:

class NyhetsmodulTable extends Migration {


    public function up()
    {
        Schema::create('news', function($table)
        {
            $table->increments('id');
            $table->string('title');
            $table->string('author');
            $table->string('message');
            $table->boolean('active');
            $table->timestamps();
            $table->string('picture_path');
        });
    }
我的create.plade.php文件(不确定我的文件格式是否正确):

我的路线:

Route::post('adminpanel/newsmodule/create',
    [
        'uses' => 'NyhetsController@uploadFile',
        'as' => 'adminpanel.newsmodule.upload'
    ]
);

表单打开标记应为

{{ Form::open(array('url' => 'adminpanel.newsmodule.create', 'files' => true)) }}
在第一行,, 不需要在表单中重新声明表单 文件应设置为true,以便它可以发送文件

为了存储图像

$news = News::find(1)
$news->image = Input::file('image');
$news->save();
既然我认为你只是在保存路径

$pathToFile = '/foo/bar/baz.jpg
Image::make(Input::file('image')->save($pathToFile);
$news->picture_path = $pathToFile;
$news->save();

您不能(也不应该)在HTML中的表单中嵌入表单。如果您的计划是使用AJAX在后台上传文件,那么您可能会成功,只要AJAX请求的隐藏输入结果是外部表单的一部分,而不是内部表单的一部分,否则其内容可能不会提交到正确的位置。但是是的,如果你只是期待一个表单中的一个表单神奇地工作,那么它不会。HTML就是不能这样工作。只需像普通输入一样将文件输入包含在外部表单中,它就会工作(确保在外部表单上使用
'files'=>true
),所以我应该在我的存储函数中使用它?这就是函数现在的样子:
public function store(){$input=input::except(['''u token']);$v=Validator::make($input,News::$rules);if($v->passes()){News::create($input);return Redirect::route('adminpanel.newsmodule.index');}return Redirect::route('adminpanel.newsmodule.create')->withInput()->withErrors($v)->带有('message','save validation errors');}
@Uhmar Hasan我发现了!谢谢你的帮助!
$news = News::find(1)
$news->image = Input::file('image');
$news->save();
$pathToFile = '/foo/bar/baz.jpg
Image::make(Input::file('image')->save($pathToFile);
$news->picture_path = $pathToFile;
$news->save();