J'obtiens l'erreur ci-dessous lorsque j'essaie d'accéder à l'itinéraire, mais le contrôleur est nécessaire pour charger les données:
(1/1) InvalidArgumentException
Action Facade\Ignition\Http\Controllers\ShareReportController not defined.
J'utilise le package Tenancy/Multi-Tenant et je l'ai configuré pour utiliser routes/tenants.php pour charger des itinéraires spécifiquement pour les locataires. Si je fais ce qui suit dans le fichier tenants.php, il renvoie la réponse appropriée.
Route::get('/test', function() {
return 'Test success';
});
mais quand j'essaie de faire la même chose, mais en chargeant les données à partir d'un contrôleur tel que celui-ci:
Route::get('/testt', 'TenantController@testt');
Il affichera l'erreur:
(1/1) InvalidArgumentException
Action Facade\Ignition\Http\Controllers\ShareReportController not defined.
Si j'essaie de mettre le même code dans les routes web.php, alors cela fonctionne parfaitement. Quel pourrait être le problème? Est-ce quelque chose dans mon code? Cela peut-il être dû au package multi-locataire que j'utilise? Comment pourrais-je continuer à déboguer cela?
Le correctif consistait à regrouper les itinéraires dans tenants.php
avec le middleware web et un espace de noms:
Route::middleware('web')->namespace('App\Http\Controllers')->group(function() {
//Routes
});
Essayez composer dump-autoload -o
ça m'a aidé.
Après quelques minutes à essayer de réparer, j'ai trouvé la solution.
Vous n'avez pas besoin de grouper les itinéraires si vous l'avez fait dans RoutesServiceProvider ou dans un fournisseur personnalisé.
Allez simplement dans config/tenancy.php
Et allez dans routes -> path
, Supprimez la fonction base_path()
et laissez la chaîne:
'path' => base_path('routes/tenants/tenants.php'),
à
'path' => 'routes/tenants/tenants.php',
Et cette erreur devrait être corrigée.
Pouvez-vous voir si vos itinéraires sont mis en cache et essayez de vider ce cache. Effacez simplement le cache de route du projet en utilisant route:clear
côté serveur, je suis allé dans le dossier/stoage et j'ai dégagé les espèces. Par exemple. affiche le dossier dans ce/stockage. Ensuite, les autorisations de tous les dossiers et fichiers ont également été modifiées pour pouvoir lire et écrire. Ensuite, les pages ont commencé à s'afficher comme prévu
J'ai eu une erreur similaire après l'installation de laravel/passport 8.1 dans Laravel 6.2:
Action Facade\Ignition\Http\Controllers\ExecuteSolutionController non défini.
Correction du runnig composer update
. Le résultat a été:
Mise à jour de la façade/allumage (1.13.0 => 1.13.1):
Pour les personnes qui trouvent cela via Google: j'ai eu une erreur similaire avec Laravel 6.5. J'avais foiré mon AppServiceProvider avec une fusion Git incomplète:
<?php
namespace App\Providers;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\Blade;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Blade;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*
* @return void
*/
public function register()
{
}
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
<<<<<<< HEAD
Blade::if(
'iscurrentroute',
function ($route) {
$route = Str::replaceFirst(Request::getSchemeAndHttpHost().'/', '', $route);
return Request::is($route);
}
);
=======
Blade::component('components.sortable', 'sortable');
>>>>>>> feature/WLI-58-bedrijf-beheren
}
}
La suppression des "= 's", "<' s" et "> 's", et la double utilisation de Blade l'ont corrigé pour moi.