@igordata1

Почему картинка не сохраняется в другой таблице?

Почему картинка не сохраняется в другой таблице? У меня связь многие ко многим. Товар сохраняется , а картинки не сохраняется в базе. В папку на сайте тоже картинки не сохраняются
public function create(Request $request)
    {
        $categories = Category::whereNull('category_id')->with('childrenCategories')->get();
 
        return view('product.create', compact('categories' ));
    }
 
 
    public function store(Request $request)
    {
//        dd('stop');
 
        $this->validate($request, [
            'title' => 'required',
            'slug'   =>  'required|unique:products',
            'text'  =>  'required',
            'path'  =>  'nullable|image',
 
        ]);
 
        $product = new Product();
        $product->title = $request->input('title');
        $product->slug = $request->input('slug');
        $product->text = $request->input('text');
        $product->keywords = $request->input('keywords');
        $product->description = $request->input('description');
        $product->published = $request->input('published');
        $product->category_id = $request->input('category_id');
//        $product->product_id = $request->input('product_id');
        $product->price = $request->input('price');
        $product->authorized_price = $request->input('authorized_price');
//        $product->path = $request->input('path');
        $product->short_description = $request->input('short_description');
        $product->save();
//                dd('stop');
 
 
        $path =public_path().'uploads/product_images';
        $file = $request->file('file');
//        dd($path);
 
        foreach ($file as $f) {
            $filename = str_random(20) .'.' . $f->getClientOriginalExtension() ?: 'png';
            $img = ImageInt::make($f);
            $img->resize(500,500)->save($path . $filename);
            Image::create(['title' => $request->title, 'path' => $filename]);
        }
 
 
 
 
        return redirect('/product/create')->with('info', 'Данные сохранены');
    }
 
<?php
 
namespace App;
 
use Illuminate\Database\Eloquent\Model;
 
class Product extends Model
{
    public function category()
    {
        return $this->belongsTo(Category::class);
    }
 
 
    public function images()
    {
        return $this->hasMany(Image::class);
    }
 
}
 
 
 
 
 
 
ErrorException
Invalid argument supplied for foreach()
http://bossphp.x:8080/products/product/store
 
Сейчас такая ошибка появилась
 
    public function store(Request $request)
    {
//        dd('stop');
 
        $this->validate($request, [
            'title' => 'required',
            'slug'   =>  'required|unique:products',
            'text'  =>  'required',
            'path'  =>  'nullable|image',
 
        ]);
 
        $product = new Product();
        $product->title = $request->input('title');
        $product->slug = $request->input('slug');
        $product->text = $request->input('text');
        $product->keywords = $request->input('keywords');
        $product->description = $request->input('description');
        $product->published = $request->input('published');
        $product->category_id = $request->input('category_id');
//        $product->product_id = $request->input('product_id');
        $product->price = $request->input('price');
        $product->authorized_price = $request->input('authorized_price');
        $product->short_description = $request->input('short_description');
        $product->save();
//                dd('stop');
 
        $image = new Image();
 
        $path =public_path().'uploads/product_images';
        $file = $request->file('file');
//        dd($path);
 
        foreach ($file as $f) {
            $filename = str_random(20) .'.' . $f->getClientOriginalExtension() ?: 'png';
            $img = ImageInt::make($f);
            $img->resize(500,500)->save($path . $filename);
            Image::create(['title' => $request->title, 'path' => $filename]);
        }
        $image->path = $request->input('path');
        $image->save();
 
 
 
 
        return redirect('/product/create')->with('info', 'Данные сохранены');
    }
 
 
Добавил новый объект в метод . Ошибка пропала, но картинка не сохраняется. Как найти причину не сохранения картинки?


здесь остановился код
$path =public_path().'uploads/product_images';
$image = new Image();
//                dd('stop');

        $path =public_path().'uploads/product_images';
        dd('stop');

        $file = $request->file('file');
//        dd($path);

        foreach ($file as $f) {
            //        dd($path);

            $filename = str_random(20) .'.' . $f->getClientOriginalExtension() ?: 'png';
            //        dd($path);

            $img = ImageInt::make($f);
            //        dd($path);

            $img->resize(500,500)->save($path . $filename);
            //        dd($path);

            Image::create(['title' => $request->title, 'path' => $filename]);
            //        dd($path);

        }
        //        dd($path);

        $image->path = $request->input('path');
        //        dd($path);

        $image->save();
  • Вопрос задан
  • 76 просмотров
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега Laravel
user@513660de4e59:/var/www$ art tinker
Psy Shell v0.10.4 (PHP 7.4.8 — cli) by Justin Hileman
>>> public_path().'uploads/product_images';
=> "/var/www/publicuploads/product_images"
>>> public_path('uploads/product_images');
=> "/var/www/public/uploads/product_images"
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы