Maison > Questions et réponses > le corps du texte
Comment utiliser le script shell pour exécuter le routage Laravel dans centos7 ?
Après avoir exécuté php artisan migrate pour générer la table de données, certaines données initiales doivent être générées.
J'ai donc écrit un InitControler, qui contient quelques méthodes pour générer des données initiales.
Après avoir écrit, j'accéderai à la méthode de ce contrôleur en accédant à l'itinéraire L'itinéraire est le suivant :
Route::get('init-users', 'InitController@initUsers');
Route::get('init-roles', 'InitController@initRoles');
//...
//...
//...
Question :
Je souhaite écrire un script shell pour accéder à ces routes au lieu de saisir manuellement les routes dans le navigateur et d'appuyer sur Entrée. Comment dois-je écrire ce script shell ? Veuillez m'aider à l'écrire.
黄舟2017-05-16 16:49:35
Par commande personnalisée bien sûr
php artisan make:console FooCommand
php artisan make:console FooCommand
把代码逻辑写在FooCommand.php,然后通过php artisan
php artisan
et écrivez-la dans le script shell🎜淡淡烟草味2017-05-16 16:49:35
Vous pouvez utiliser le shell pour simuler la navigation locale
curl http://localhost/XX/init-users
curl http://localhost/XX/init-roles
#....
#....
Cependant, cela nécessite que le site Web soit accessible localement
我想大声告诉你2017-05-16 16:49:35
Et si je changeais d'avis
Au lieu d'écrire les données d'initialisation en C, je les écris dans le fichier de migration.
Normalement, chaque table de données correspondra à un fichier de migration. Vous pouvez écrire les données d'initialisation de la table dans une méthode privée. Après la méthode up de la migration elle-même, utilisez $this->xxx() pour l'appeler. il.
Cela présente plusieurs avantages : les données d'initialisation seront initialisées en même temps que la migration, et les données d'initialisation sont soigneusement divisées dans les tables de migration correspondantes.
P.S. Parce que chaque migration correspond également à un Modèle
, vous pouvez également utiliser le modèle pour initialiser les données. Pas si cool.