Laravel 5关系文章和图像之间的关系

时间:2016-09-24 20:03:43

标签: php laravel orm image-uploading

嗨,我是Laravel的新人,我就是这个简单的问题。我有应用程序,用户可以创建一些文章,也可以上传该文章的主图像,它的工作完美。我还想让用户为他的文章上传更多图像。我已经创建了模型(ArticleImage)并添加了Article和ArticleImage之间的关系。我创建了表单字段,用于在文章表单中上传多个文件。但我现在还不知道如何告诉laravel将这些路径的所有名称保存到数据库中并将图像存储在public / images文件夹中,而不是后来在视图中我可以使用这些图像。我现在需要创建ArticleImage控制器和内部控制器来编写该功能,或者我应该在商店功能内的Article控制器内执行此操作。 Tnx提前为每一个帮助。 这是github-repo(https://github.com/Dabizlja/Laravel-blog

的链接

2 个答案:

答案 0 :(得分:1)

如果表单将输入作为数组发送。

<input name="picures[]" />

在保存的ArticleController中,您可以使用json类型

$files=[];
$pictures = $request['pictures'];
if (count($pictures) > 0 && $pictures[0] != null) {  
        foreach ($pictures as $picture) { 
            $validator = Validator::make([$picture], ['mimes:jpeg,jpg,bmp,png']);
            if ($validator->fails()) {
                return $validator->messages()->all();
            }

            $picture->move(public_path() . '/images/', $picture->getClientOriginalName());
            array_push($files, $picture->getClientOriginalName());
        }
    }
   $article->images = json_encode($files);

要在视图中取回

<?php   
  foreach ( $images as $file) {
    echo  '<img src="'asset('/images/' . $file)'"/>';
  }
 ?>

在编辑器中的控制器上记得解码json

$files = json_decode($article->images);

要删除图片,您必须通过数组并以相同的方式将其删除。

希望这适合你。

答案 1 :(得分:0)

可能是

$article->articleImages()->saveMany($images);

希望这可以解决您的问题

相关问题