sirve section que para for example content ciclo laravel eloquent models conflict

section - para que sirve el yield laravel



Laravel: conflicto entre el nombre del modelo y la fachada incorporada (1)

Cometí este error desde el principio también, no necesariamente entendiendo el papel del espacio de nombres en toda la aplicación.

El espacio de nombres debe marcar la lógica comercial dentro del dominio o la responsabilidad de la aplicación en sí, por lo que dar un espacio de nombre de Modelos no es necesariamente útil. En su lugar, cree un espacio de nombres raíz con el nombre de la aplicación, su empresa, usted o lo que quiera, y luego proporcione un espacio de nombres de modelo.

Por ejemplo:

namespace MyGreatApp/Models; class Event extends /Eloquent{ }

Entonces harías referencia a este modelo en:

use MyGreatApp/Models/Event; $event = new Event();

En el largo plazo, este es un enfoque más limpio y organizado. Sin embargo, esto significa mover tus modelos a una carpeta diferente. Pero no hay nada de malo en eso. Al menos de esa manera, sabes que tienes todo tu código personalizado en tu espacio de nombres MyGreatApp. :)

Tengo un modelo en mi aplicación Laravel llamado Event . Como acabo de descubrir, esto crea un conflicto entre mi modelo y Illuminate/Support/Facades/Event , una fachada incorporada. La solución obvia aquí es cambiar el nombre de mi Modelo, que no es ideal porque realmente no hay otro nombre que pueda darle a mi Modelo que tenga algún sentido, o renombrar el alias en app.php para Illuminate/Support/Facades/Event , que me gustaría evitar por temor a romper cualquier cosa que pueda depender de ese alias en el futuro (me temo que puedo olvidar).

Se ha sugerido que quizás podría usar espacios de nombres, lo cual intenté de la siguiente manera:

aplicación / modelos / Event.php

namespace Models; #<-- I''ve also tried using "/Models" here class Event extends /Eloquent{

aplicación / base de datos / semillas / DatabaseSeeder.php

Models/Event::create(); #<-- again, I''ve also used "/Models/Event"

Las 4 combinaciones anteriores han producido un error de Class ''Models/Event'' not found cuando ejecuto php artisan db:seed .

Tal vez simplemente no entiendo los espacios de nombres correctamente, pero el problema más urgente es cómo resolver mi problema. Si se puede resolver usando espacios de nombres como se sugiere, genial, pero también estoy abierto a otras ideas.