J'essaie de migrer un ancien PHP / MySQL vers le projet LARAVERL. Pour tant de raisons, je ne dois pas modifier le schéma de la table de base de données. Je dois modifier les classes de cadre Laravel. Par exemple, je veux forcer Laravel Auth pour vérifier le Spécifique plus spécifique: je veux savoir comment récupérer les données de la base de données dans users.User code> Capitalize Capitalize pour renvoyer l'utilisateur, au lieu de users.user code>. J'ai besoin de savoir quelle partie de la Framework Laravel vérifier les utilisateurs code> Table de base de données ou utilisateur code>. Comment modifier sans casser la fonctionnalité d'autorisation par défaut. P>
/vendor/laravel/framework/src/illuminate/auth/eloquentaserprovider.php code> Ligne 137 validateCréDentials () code>. p>
3 Réponses :
Vous devrez créer tous les modèles pour la table et les relations. Sur les modèles, vous pouvez spécifier un nom de table, vous n'avez pas à renommer les tables si vous ne le souhaitez pas.
Par exemple. P>
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model{
protected $table = 'users.USER';
}
pour extraire des modèles d'un schéma de base de données, vous pouvez utiliser le package suivant: p> Ce paquet permet de générer automatiquement les modèles éloquents dont vous avez besoin pour Commencez à travailler avec votre base de données à Laravel. P> Il a un tas de commandes faciles à utiliser pour pouvoir créer des modèles à partir de votre schéma de base de données. P> Utilisation strong> P> Échafaudez certains de vos modèles à partir de votre connexion par défaut. p> Vous pouvez échafauder une table spécifique comme ceci: p> Auth::login($user);
// Login and "remember" the given user...
Auth::login($user, true);
Si vous souhaitez utiliser votre base de données personnalisée sur votre application Laravel, il vous suffit de créer un modèle pour chacune des tables de votre base de données et de configurer le nom de la table, la clé primaire et les attributs remplissables.
Plus d'infos ici Définition des modèles P> Authentification avec des champs utilisateur personnalisés et des champs de passe h2>
Si vous avez exécuté la commande Ensuite, vous devez définir le modèle de votre tableau , Touches primaires et champs remplissables, comme Bellow: P> PHP Artisan marque: auth code> mais vous souhaitez utiliser une autre table ou champs au lieu de l'utilisateur par défaut et de passer sans Briser la fonctionnalité d'authentification créée, vous devez faire le savoir pour le savoir, en suivant les étapes ci-dessous ci-dessous: P> PHP Artisan FAIT: MODÈLE FOUSERTABLE CODE>, dans laquelle 'BUREAU' est le nom de votre table. P> class LoginController extends Controller{
..... // don't change other functions
public function username(){ // add the function username
return 'YourUsernameField';
}
}
Personnellement, je pense que c'est trop excitée à ce qu'il tente de réaliser. Mais c'est une réponse très structurée et détaillée. C'est également plus une réponse à la question de savoir comment s'étendre correctement.
Pourquoi n'écrivez-vous pas les scripts de migration? E.g Vous pouvez migrer
utilisateurs.user code> àusers.User code> colonne de votre script de migration.Stackoverflow.com/a/33889923/823549
Vous pouvez également utiliser un modèle personnalisé pour l'authentification, c'est-à-dire une table autre que les utilisateurs code> code>. Voir Ce a > Post pour plus de détails.
Si votre schéma de table actuel a les colonnes principales, le nom, le mot de passe, le courrier électronique; Ensuite, dans la table des utilisateurs, vous pouvez simplement spécifier la propriété de table en passant le nom de la table et Laravel choisira automatiquement cela.
@John Mon objectif est de forcer la stratégie Laravel à utiliser mon
users.User code> au lieu de vérifier la tableuser.User code>. Je ne veux pas changer mon schéma de table.