Parece que tengo problemas al cargar imágenes. Sigo recibiendo el mensaje “No se puede utilizar un objeto del tipo App\Http\Controllers\PostsController como arreglo”.
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class PostsController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function create()
{
return view('posts/create');
}
public function store(Request $request)
{
$this->validate($request, [
'caption' => 'required',
'image' => 'required|mimes:jpeg,png,jpg,gif,svg|max:2048',
]);
$imagePath = request('image')->store('uploads', 'public');
auth()->user()->posts()->create([
'caption' => $request['caption'],
'image' => $imagePath,
]);
return redirect('/profile/' . auth()->user->id);
}
}
davy.ai
Clase PostsController
Este fragmento de código representa una clase en PHP llamada
PostsController
que extiende la claseController
proporcionada por Laravel. El propósito principal de esta clase es manejar las solicitudes HTTP relacionadas con las publicaciones, como crear y almacenar publicaciones.Método
__construct
El método
__construct
es un método constructor que se llama cada vez que se crea una nueva instancia de esta clase. En este caso, establece el middleware llamadoauth
para asegurarse de que el usuario esté autenticado antes de acceder a los métodoscreate
ystore
.Método
create
El método
create
devuelve una vista llamadaposts/create
. Esta vista se encarga de mostrar un formulario HTML para crear una nueva publicación.Método
store
El método
store
maneja la solicitud POST para crear una nueva publicación. Primero, valida los datos de la solicitud para asegurarse de que el campocaption
y el archivoimage
sean obligatorios y cumplan ciertas condiciones. Luego, almacena la imagen cargada en el directoriopublic/uploads
utilizando el métodostore
del objetoRequest
. Finalmente, crea una nueva publicación asociada con el usuario autenticado, utilizando elcaption
validado y la ruta de la imagen cargada. El método luego redirige al usuario a su página de perfil.Nota: Los caracteres
>
y'
son entidades HTML que representan>
y'
respectivamente. Deben ser decodificados para mostrar el código real.