Laravel France

Class 'App\models\Todo' not found

Avatar de StephaneMarry
StephaneMarry

Bonjour tout le monde.

Grace à pas mal de conseils, dont celui de prendre un vrai bon serveur m'a permit de deployer mon site sur le serveur. (O2Switch i love you ). ^^ Globalement ça marche, sauf sur un point. J'ai une erreur comme quoi il ne trouve pas le model et j'ai l'impression que ça touche les models qui ont des relations. J'ai bien fait un php artisan migrate pourtant.

Par exemple celui qui récupère la liste des projets marche très bien. Merci :) Voici mon erreur:

Class 'App\models\Todo' not found (View: /home/vxxc7496/public_html/tiktak/resources/views/admin/pages/dashboard.blade.php)
/home/vxxc7496/public_html/tiktak/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasRelationships.php#745
Facade\Ignition\Exceptions\ViewException

Class 'App\models\Todo' not found
/home/vxxc7496/public_html/tiktak/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasRelationships.php#745
Posté il y a 1 mois
Avatar de bestmomo
bestmomo

Salut,

Dans un premier temps lance un composer dumpautoload pour régénérer le chargement des classes.

Mais je me demande pourquoi ton code cherche un modèle au niveau d'une vue...

Posté il y a 1 mois
Avatar de StephaneMarry
StephaneMarry

Je viens de faire composer dumpautoload et toujours le même soucis.

Mon controller envoi à ma vue mes informations utilisateurs. CONTROLLER:

class MainController extends Controller
{
    public function index(){

        $id = Auth::id();
        $infos_user = User::find($id );

Dans mon model User je peux récupérer les taches de ma todoliste associé ( chaque user à sa todoliste ). MODEL USER

class User extends Authenticatable
{
    use HasFactory, Notifiable;

    public function todos(){
        return $this->hasMany('App\models\Todo')->orderBy('order');
    }

MA VUE:

   @forelse ($infos_user->todos as $todo)
                      <li id="{{$todo->id}}">
Posté il y a 1 mois
Avatar de bestmomo
bestmomo

Je suppose qu'en local tu utilises Windows qui est permissif au niveau des majuscules, ce qui n'est pas le cas de Linux, alors tu devrais mettre une majuscule à Models :

return $this->hasMany('App\Models\Todo')->orderBy('order');

Ou utiliser cette syntaxe :

return $this->hasMany(Todo::class)->orderBy('order');

D'autre part tu as un souci n+1, tu devrais lire cette partie de la documentation.

Posté il y a 1 mois
Avatar de StephaneMarry
StephaneMarry

Oui je viens a l'instant de trouver et tu as raison, c'est un soucis de casse. :'(

App\models\ au lieu de App\Models\ . En tout cas merci pour ton aide et je vais utiliser ta syntaxe qui est moins dangereux. Merci à toi :)

Posté il y a 1 mois

Vous ne pouvez pas répondre à ce sujet.