mustang_shelby
@mustang_shelby
i like (*_metallica_*)

Как реализовать изображение в laravel по умолчанию?

Привет Всем!
ребят помогите. реально мозг взрывается уже просто буквально всё обшарил.
но мне нужно реализовать такую вещь.
В админке есть поля выбрать картинку - 5 полей таких
в laravel validation убрал пункты required - что бы картинки были необязательны.
но когда сохраняю пост - просто не выбирая картинок он мне выдает Call to a member function store() on null .
и я знаю что в html input нельзя сделать эту картинку по умолчанию.
но босс говорит мне нужно что бы картинку если ты не выбираешь была установлена по умолчанию (например какая то фирменная картинка) я смотрел всю доку. но нет там такого смотрел гугл. стак оверфло. везде был. не смог найти ответ. бьюсь головой об стенку потому что уверен что есть решение но я его не могу найти.
Суть - каким образом сделать какой метод как структурировать таблицу может что бы если я не хочу выбирать картинку была она по умолчанию.
Я буду признателен вам за ответ и помощь. я не просто так вот написал. я реально был везде! и что я только не писал.
P.S. - мой кошмарный метод. потому что я хочу писать код но понимаю что это трешь а не код.
/**
    * ATENTION to the code needs refactoring DRY
    * Validate/method add
    * return array
    */
    public function add(Request $req)
    {
      /*rules ready */ 
      $rules = [
        'name'     => 'required|string|max:150',
        'seo_desk' => 'required|string|max:150',
        'brand'    => 'required|string|max:150',
        'selecter' => 'required',
        'image1'   => 'mimes:jpg,jpeg,bmp,png|max:2000',
        'image2'   => 'mimes:jpg,jpeg,bmp,png|max:2000',
        'image3'   => 'mimes:jpg,jpeg,bmp,png|max:2000',
        'image4'   => 'mimes:jpg,jpeg,bmp,png|max:2000',
        'image5'   => 'mimes:jpg,jpeg,bmp,png|max:2000',
        'price'    => 'required|numeric',
        'oldPrice' => 'required|numeric',
        'count'    => 'required|numeric',
        'desc_short'   => 'required|string|max:500',
        'desk_large'   => 'required|string|max:5000',
        'feature'      => 'alpha_dash|string|max:50',
        'color'        => 'alpha_dash|string|max:50'
      ];
      //start API
      $val_api = Validator::make($req->all(), $rules);
      //cheking
      if ($val_api->fails()) {
        return redirect('add')
        ->withInput()
        ->withErrors($val_api);  
      } else {
        $data = $req->input(); // get data

        try {
        // save Post
        $post = new Product();
        $post->name        = $data['name'];
        $post->seo_desk    = $data['seo_desk'];
        $post->brand       = $data['brand'];
        $post->selecter    = $data['selecter'];
        $post->price       = $data['price'];
        $post->oldPrice    = $data['oldPrice'];
        $post->count       = $data['count'];
        $post->desc_short  = $data['desc_short'];
        $post->desk_large  = $data['desk_large'];
        $post->color       = $data['color'];
        $post->lenght      = $data['lenght'];
        $post->height      = $data['height'];
        $post->width       = $data['width'];
        $post->feature     = $data['feature'];
        $post->scope       = $data['scope'];
        $post->example_one = $data['example_one'];
        $post->example_two = $data['example_two'];
        $post->save();
        /**
        * save relationships image
        */
        $image = new Image(
          [
            'img1' => $req->file('image1')->store('uploads','public'),
            'img2' => $req->file('image2')->store('uploads','public'),
            'img3' => $req->file('image3')->store('uploads','public'),
            'img4' => $req->file('image4')->store('uploads','public'),
            'img5' => $req->file('image5')->store('uploads','public'),
          ]          
        );
        // get last id and store by id and save images
        $post = Product::latest()->first();
        $post->image()->save($image);
        // redirect 
          return redirect('/add')->with('status', 'Успех данные сохранены');
        } catch (Exception $e) {
          return redirect('/add')->with('status', 'провал - данные не сохранены');
        }
      }
      // end
    }
  • Вопрос задан
  • 324 просмотра
Решения вопроса 1
@demeys
попробуй так
$image = new Image(
[
'img1' => $request->has("image1") ? $req->file('image1')->store('uploads','public'): null,
'img2' => $request->has("image2") ? $req->file('image2')->store('uploads','public'): null,
'img3' => $request->has("image3") ? $req->file('image3')->store('uploads','public'): null,
'img4' => $request->has("image4") ? $req->file('image4')->store('uploads','public'): null,
'img5' => $request->has("image5") ? $req->file('image5')->store('uploads','public'): null,
]
);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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