jeder. Ich habe derzeit ein Problem mit der Änderung des Auth-Registrierungssystems in Laravel 5.2. Was ich versuche zu tun, ist zwei separate Log-System für regelmäßige Benutzer und Administratoren. Ich habe der Datenbank ein neues Feld für die Benutzer admin hinzugefügt und den Standardwert auf 0 oder false gesetzt. Auf der Registrierungsseite, die Laravels Authentifizierungssystem verwendet, habe ich eine versteckte Eingabe hinzugefügt und den Wert auf 1 gesetzt. Diese Seite wird natürlich verwendet, um sich bei den Admins anzumelden, damit sie den Admin-Bereich betreten können.Änderung des Auth-Registrierungssystems in Laravel 5.2, um versteckte Formularfelder zu enthalten
Wenn ich das Formular absende, wird das Admin-Feld einfach auf den Standardwert gesetzt, was ich für diesen Teil der Site nicht möchte. Sobald der Benutzer auf dieser Seite auf "Senden" klickt, möchte ich, dass seine Informationen den Administratorwert von 1 an die Datenbank gesendet werden. Gibt es eine Möglichkeit, dies zu tun?
Hier ist, was ich bisher getan habe, um das Auth-Registrierungssystem anzupassen.
Ich habe das Namensfeld entfernt und ein Vornamen- und Nachname-Feld hinzugefügt, sodass die Benutzer beide Werte in separaten Texteingaben eingeben können. Ich habe das Benutzermodell aktualisiert, um diese Felder in das $ fillable -Array aufzunehmen, und die Validierungsmethode von AuthControllers aktualisiert, sodass diese Felder validiert werden können.
Hier ist der Code für jeden ist die
namespace App;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'firstname', 'lastname', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token', 'admin',
];
}
und hier OS die AuthContoller Datei User.php Modelldatei
class AuthController extends Controller
{
use AuthenticatesAndRegistersUsers, ThrottlesLogins;
/**
* Where to redirect users after login/registration.
*
* @var string
*/
protected $redirectTo = '/';
/**
* Create a new authentication controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware($this->guestMiddleware(), ['except' => 'logout']);
}
/**
* Get a validator for an incoming registration request.
*
* @param array $data
* @return \Illuminate\Contracts\Validation\Validator
*/
protected function validator(array $data)
{
return Validator::make($data, [
'firstname' => 'required|max:255',
'lastname' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:6|confirmed',
'admin' => 'required',
]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return User
*/
protected function create(array $data)
{
return User::create([
'firstname' => $data['firstname'],
'lastname' => $data['lastname'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
'admin' => $data['admin'],
]);
}
}
Wie Sie sehen können, habe ich hier
ist auch hinzugefügt Das Admin-Feld in der User.php-Modelldatei hofft, dass sich das automatisch füllt.Wenn mir jemand sagen kann, wie das gemacht werden könnte, wäre das großartig. Aber wie Sie sehen können, ist dies nicht wirklich eine praktische Lösung für eine tatsächliche Website, aber es geht eher darum, die Ins-und-Outs von Laravel zu lernen und zu lernen, wie man das ausdiskutiert. Als ich begann, diese Frage zu formulieren, schien es mir, als könnte ich einfach die Registrierung für jeden Benutzer verwenden und einem übergeordneten Administrator erlauben, den Wert des admin - Feldes auf "true" zu setzen, damit sich der Benutzer in die Admin-Abschnitte der Anwendung. Natürlich, würde ein System wie dieses, es gäbe keine Notwendigkeit, zwei separate Login-Bildschirme, aber wie ich schon sagte, ich lerne gerade.
Ich plane auch das Hinzufügen von Rollen, ähnlich wie Word für die verschiedenen Ebenen der Admins, die Dinge wie das Erstellen, Bearbeiten und Veröffentlichen von Inhalten wie Posts steuern würde. Aber im Moment arbeite ich nur an diesem System, so wie es ist.
Vielen Dank für jegliche Hilfe und Kommentare zu diesem Thema.
Vielen Dank für hier auf meine Frage antwortet. – Kaley36