2016-06-10 8 views
1

Hallo Ich versuche, einen Code-Generator zu erstellen, um einen Benutzer von Eingabe-E-Mail einladen, möchte ich auf der Datenbank die Benutzer-ID, die die Einladung, den Code und die E-Mail senden, wer die Einladung erhalten, aber speichern Ich kann nicht die ID meines Auth-Benutzers tun $ request-> Benutzer ('id') (funktioniert nicht) auch ich weiß, es gibt andere Methode, dies einfacher zu tun als mit DB :: Tabelle so etwas wie $ Anfrage-> Benutzer() -> lädt ein() -> erstellen ... mein Controller sieht aus wieWie validiere und erstelle ich auf Laravel 5.2 auf dem Controller?

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use DB; 
use App\Http\Requests; 
use App\Http\Controllers\Controller; 


class invitacionController extends Controller 
{ 


    public function __construct() 
    { 
     $this->middleware('auth'); 

    } 


    public function index(Request $request) 
    { 
     return view('administrar'); 
    } 



    public function invitacion(Request $request) 
    { 
     $this->validate($request, [ 
      'email' => 'required|email|max:255|unique:invites', 
     ]); 

     /*$request->user()->invites()->create([ 
      'code' => str_random(40), 
     ]);*/ 
     DB::table('invites')->insert([ 
     ['usuId' => $request->user('id'), 'code' => str_random(40), 'email' => $request->input('email')], 
     ]); 

     return redirect('/administrar'); 
    } 
} 

Antwort

1

Wenn die Beziehung richtig konfiguriert ist, sollte die erste (kommentiert) Methode arbeiten.

Was die zweite Methode, ich glaube, Sie zusätzliche Klammern hinzufügen:

DB::table('invites')->insert([ 
    'usuId' => $request->user()->id, // <--- 
    'code' => str_random(40), 
    'email' => $request->input('email') 
]); 

Die hasMany Methode, um zusätzliche Parameter nehmen. Standardmäßig erwartet die Spalte den Namen user_id, aber Sie haben sie usuId genannt. Die documentation gibt folgendes Beispiel:

return $this->hasMany('App\Comment', 'foreign_key');

Also ich denke, Sie

public function invites() 
{ 
    return $this->hasMany(Invite::class, 'usuId'); 
} 
+0

mit $ Anfrage- tun sollte> Benutzer() -> id funktioniert gut, aber die richtige Methode ist es das, kommentierte ein Ich denke, , mit Beziehung meinst du Fremdschlüssel oder einfach nur eloquend? weil ich es so habe öffentliche funktion benutzer() { zurückgeben $ this-> belongsTo (User :: class); } User.php öffentliche Funktion lädt ein() { return $ this-> hasMany (einladen :: Klasse); } – Sociopath

+0

@Sociopath Antwort aktualisiert – alepeino

+0

Dank funktioniert wie ein Charme, eine Frage mehr, es fügt alles außer die E-Mail, um es zu bekommen, ich muss dies schreiben: $ request-> user() -> lädt() -> erstellen ([ \t \t \t 'Code' => str_random (40), \t \t \t 'E-Mail' => $ request-> Eingang ('E-Mail'), ]); es ist normal? – Sociopath