Я использую foreach($user->posts as $post)
в моем поле ввода, чтобы я мог использовать это value="{{ old('about') ?? $post->about }}"
, потому что без итерации я получаю ошибку (пытаюсь получить свойство объекта) при использовании значения. Однако я не делаю то, что мой edit.blade выглядит так при попытке редактирования. Мне нужно только одно поле ввода только для одного конкретного сообщения, которое я пытаюсь редактировать
edit.blade.php
@extends('layouts.app')
@section('content')
@csrf @method ('ПАТЧ') @foreach ($ user-> posts as $ post) {{__ ('post about')}} @error ('about') {{$ message}} @enderror @endforeach {{__ ('post image')}} @error ('изображение') {{$ message}} @enderror @endsection
маршрут
Route::get('/post/edit/{user}', 'PostController@edit')->name('post.edit');
Route::patch('/p/update/{user}', 'PostController@update')->name('post.update');
PostController
public function edit(User $user)
{
return view('posts.edit', compact('user'));
}
public function update(User $user)
{
$data = request()->validate([
'about' => 'required',
'image' => '',
]);
if(request('image')){
$imagePath = request('image')->store('uploads','public');
$image = Image::make(public_path("storage/{$imagePath}"))->fit(500,500);
$image->save();
$imageArray = ['image' => $imagePath];
}
auth()->user()->posts()->update(array_merge( $data, $imageArray ?? [] ) );
return redirect("/user/{$user->id} ");
}