2017-07-09 3 views
0

Controller-Register-Methode:schaffen Anmeldung mit schlanker und eloquent

public function register($request, $response) 
{  
$user = User::create([ 
    'username'=> $request->getParsedBody()['username'], 
    'password'=> $request->getParsedBody()['password'], 
    'nama'=> $request->getParsedBody()['nama'], 
    'no_hp'=> $request->getParsedBody()['no_hp'], 
    ]); 

return $response->withJson([ 
    'succes' =>true , 
    'message'=>'Pendaftaran Berhasil', 
    'data' => $user 
    ]); 
} 

Benutzermodellcode:

<?php 
namespace App\models; 
use Illuminate\Database\Eloquent\Model; 
class User extends Model 
{ 
    public $timestamps = false; 
    protected $fillable = ['username', 'password', 'nama', 'no_hp']; 
    protected $table = "users"; 
} 

Wie kann ich überprüfen, ob Benutzername ist bereits vorhanden in der Datenbank?

ich schlank und eloquent

+0

'Benutzer :: wo ('username', $ username) -> count() == 0'? – Bytewave

+0

welchen Teil muss ich mit diesem Code ändern? –

+0

Bevor Sie Ihr Benutzermodell erstellen, aktivieren Sie ** wenn ** die Anzahl der Benutzer mit demselben Benutzernamen == 0. Wenn ja, erstellen Sie das Benutzermodell. Wenn nicht, einen Fehler werfen. Vielleicht möchten Sie dies mit einer benutzerdefinierten Validierungsregel tun, wenn Sie eine Art Validierungsbibliothek verwenden, aber das liegt an Ihnen. SO ist nicht gerade ein Code-Schreibdienst. – Bytewave

Antwort

0

Eloquent können Sie SELECT COUNT(*) Abfragen mit der ->count() Methode auf seiner Query Builder auszuführen. Um zu überprüfen, dass es keine Benutzer mit demselben Benutzernamen gibt, könnten Sie Folgendes verwenden:

if (User::where('username', $username)->count() == 0) { 
    // register the new user 
} else { 
    // throw an error 
}