Привет Всем!
ребят помогите. реально мозг взрывается уже просто буквально всё обшарил.
но мне нужно реализовать такую вещь.
В админке есть поля выбрать картинку - 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
}