2016-06-06 23 views
0

Ich muss Array zur Datenbanktabelle hinzufügen. In HTML verwende ich Select mit mehreren Auswahlwerten.Laravel viele Relation einfügen

Mein Code: HTML Gleichwie:

<select name="sel_val[]" multiple> 
           <optgroup label="select_values"> 
            @foreach($val as $v) 
            <option value="{{$v->id}}">{{$v->text}}</option> 
            @endforeach 
           </optgroup> 
          </select> 

Modellbeziehung wie zum Beispiel:

public function relationtest(){ 


     return $this->hasMany('App\test',"testid","id"); 
    } 

Und Controller:

protected function create(Request $request){ 
    $last = Home::create([ 
     'somename'=>$request['somename'], 
     'text'=>$request['text'] 
    ]); 


    $last->relationtest()->createMany([ 

      'selectvalue'=>$request->sel_val 
     ]); 


    return Redirect::to('admin/products'); 
} 

Mein Array (print_r ($ request)) :

[sel_val] => Array ([0] => 1 [1] => 3) 

Und DB

HOME:: 
|id|sometext|text 
|1 |asdgasdg|gsdg 
|2 |asdgdsdg|gsg 

TEST:: 
|id|selectvalue|testid 

//testid == HOME::id 

kurz gesagt, muss ich $ request-> sel_val (Array) wurde zu der Datenbank hinzugefügt. Ich denke, ich sollte "createMany" verwenden, aber ich weiß nicht wie.

Antwort

1

Um nur so etwas wie dies zu vereinfachen verwenden:

$values = $request->get('sel_val'); 

foreach ($values as $value) 
{ 
    $last->relationtest()->create(['selectvalue' => $value]); 
} 

Wenn Sie es auf eine Abfrage optimieren wollen, sicher, könnten Sie createMany verwenden:

$values = $request->get('sel_val'); 
$toCreate = []; 

foreach ($values as $value) 
{ 
    $toCreate[] = ['selectvalue' => $value]; 
} 

$last->relationtest()->createMany($toCreate); 
+0

Können Sie mir mehr sagen, wie man die hinzugefügten Daten bearbeiten? – bradley546994

+0

Im Grunde behandeln Sie Beziehungen genauso wie eloquente oder Abfrage-Builder-Objekte. Die meisten Methoden funktionieren gleich, wie zum Beispiel update, insert, create, delete, ect. https://laravel.com/docs/master/eloquent-relationships#inserting-related-models https://laravel.com/docs/master/queries https://laravel.com/docs/master/eloquent –

Verwandte Themen