2016-05-31 10 views
2

Was wäre der beste Weg, um diese Abfrage zu setzen? Ich kann nicht scheinen, irgendeine Dokumentation auf einer tatsächlichen Einfügung oder Aktualisierung zu finden, die funktioniert, ich hoffe, es über das redegewandte Modell zu tun, aber kann nicht scheinen, es zu funktionierenEinfügen oder Aktualisieren in Laravel?

irgendeine Hilfe würde geschätzt werden.

DB::table('questions')->insert([ 
    'marital_status' => $request->marital_status, 
    'job_title' => $request->job_Title, 
    'industry' => $request->industry, 
    'occupation' => $request->occupation, 
    'paye' => $request->paye, 
    'self_employed' => $request->self_employed, 
    'child_benefit' => $request->child_benefit, 
    'work_home' => $request->work_home, 
    'own_transport' => $request->own_transport, 
    'company_vehicle' => $request->company_vehicle, 
    'annual_income' => $request->annual_income, 
    'pay_memberships' => $request->pay_memberships, 
    'income_benefits' => $request->income_benefits, 
    'printer' => $request->printer, 
    'contact' => $request->contact, 
    'share' => $request->share, 
    'terms' => $request->terms, 
    'user_id' => $user 
]); 

hier ist mein Modell für Fragen

<?php 
namespace App; 

class Questions extends Model 
{ 
    protected $fillable = [ 
     'marital_status', 
     'job_title', 
     'industry', 
     'occupation', 
     'paye', 
     'self_employed', 
     'child_benefit', 
     'work_home', 
     'own_transport', 
     'company_vehicle', 
     'annual_income', 
     'pay_memberships', 
     'income_benefits', 
     'printer', 
     'contact', 
     'share', 
     'terms', 
     'user_id' 
    ]; 

    public function users(){ 
     return $this->hasOne('App\User'); 

    } 
} 

Antwort

5

Verwenden Eloquent mit mass assignment:

Question::updateOrCreate($request->all()->put('user_id', $user)); 

Oder:

$question = Question::firstOrNew('some_id', $someId); 
$question->fill($request->all()->put('user_id', $user))->save(); 

nicht $fillable zu füllen Vergessen Sie Array mit allen Eigenschaften, die Sie anhalten möchten:

class Question extends Model 
{ 
     protected $fillable = [ 
      'marital_status', 
      'job_title', 
      'industry', 
      'occupation', 
      'paye', 
      'self_employed', 
      'child_benefit', 
      'work_home', 
      'own_transport', 
      'company_vehicle', 
      'annual_income', 
      'pay_memberships', 
      'income_benefits', 
      'printer', 
      'contact', 
      'share', 
      'terms', 
      'user_id' 
     ] 

aktualisieren

Wenn put() Methode aus irgendeinem Grund nicht funktioniert, versuchen Sie dies:

$request->merge(['user_id' => $user]); 

Und dann benutzen Sie einfach $request->all()

Oder:

$requestData = $request->all(); 
$requestData['user_id'] = $user; 

Und dann verwenden $requestData

+0

Ich versuche aber die beredte Weise zu verwenden, wenn ich den Fehler ‚Call to undefined Methode App \ Fragen :: updateOrCreate()‘ und nicht sicher, warum – Tfish

+0

es sein sollte 'App \ Frage ::'. Überprüfen Sie, ob Sie dieses Modell haben. –

+0

Ich versuche beide Wege jetzt, für den ersten Weg, bekomme ich diesen Fehler 'Aufruf an eine Member-Funktion put() auf Array'. Der zweite ist mir eine Menge Probleme, also versuche ich den ersten Weg zur Arbeit zu bekommen. – Tfish

Verwandte Themen