php, 1) Во-первых, убедись, что роут создан верно.
Route::post('/', 'postctr@store')->name('store');
У тебя роут
store ведет на главную страницу сайта. Подозреваю, что у тебя неверно прописано имя контроллера? Перед
@ должно быть указано название файла контроллера от корня папки
Controllers без расширения
php. Например, myTestController@store (после собаки - метод в этом контроллере).
В методе store() неверно создается модель. Делай лучше так:
$post = Post::create([
'title' => $request->title,
'short_title ' => Str::limit($request->title, 30, '..'),
'descr' => $request->descr,
'author_id' => mt_rand(1,10)
]);
if ($request->file('img')) {
$path = Storage::putFile('public', $request->file('img'));
$url = Storage::url($path);
$post->img = $url;
}
$post->save();
либо так:
$data = [
'title' => $request->title,
'short_title ' => Str::limit($request->title, 30, '..'),
'descr' => $request->descr,
'author_id' => mt_rand(1,10),
'img' => false
];
if ($request->file('img')) {
$path = Storage::putFile('public', $request->file('img'));
$data['img'] = Storage::url($path);
}
$post_id = Post::insertGetId($data);
Обрати внимание, что твой велосипед можно заменить встроенным методом Laravel:
// вместо этой приблуды
$post->short_title = Str::length($request->title) > 30 ? Str::substr($request->title, 0, 30) . '...' : $request->title;
// используй метод limit
Str::limit($request->title, 30, '..');