2015-03-12 17 views
9

मैं बोलने में निपुण उपयोग कर रहा हूँ मेरी मेज अवसर अद्यतन करने के लिए,Laravel बचाने() विधि सच लौटने लेकिन अपडेट नहीं हो रिकॉर्ड

अवसर मॉडल

<?php namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Opportunity extends Model { 

protected $primaryKey = 'OpportunityID'; 

protected $table = 'opportunitys'; 
// relationships 
public function csfs() 
{ 
    return $this->hasMany('App\Csf', 'opportunityID'); 
} 

public function benefits() 
{ 
    return $this->hasMany('App\Benefit', 'opportunityID'); 
} 

public function risks() 
{ 
    return $this->hasMany('App\Risk', 'opportunityID'); 
} 

public function projects() 
{ 
    return $this->belongsTo('App\Project', 'projectID'); 
} 

public static function createNewOpportunity($input, $projectID) 
{ 
    $opportunity = new Opportunity; 
    $opportunity->value = $input['value']; 
    $opportunity->margin = $input['margin']; 
    $opportunity->duration = $input['duration']; 
    $opportunity->tender_type = $input['tender_type']; 
    $opportunity->likelihood_of_success = $input['likelihood_of_success']; 
    $opportunity->scope_of_work = $input['scope_of_work']; 
    $opportunity->deliverables = $input['deliverables']; 
    $opportunity->projectID = $projectID; 
    $opportunity->high_level_background = $input['high_level_background']; 
    if($opportunity->save()) 
     { 
      Opportunity::leadSalesOppComplete($projectID); 
      return true; 
     }; 

} 

public static function leadSalesOppComplete($projectID) 
{ 
    $task = Lead::where('projectID', '=', $projectID)->first(); 
    $task->sales_opp = true; 
    return $task->save(); 
} 

}

public function updateOpportunity(Request $request, $id) { 

मैं आईडी हो और मौका पाएं

$something = Opportunity::find($id); 

मैं मर गया, और इस फेंक दिया और मैं इस

Opportunity {#259 ▼ 
#primaryKey: "OpportunityID" 
#table: "opportunitys" 
#connection: null 
#perPage: 15 
+incrementing: true 
+timestamps: true 
#attributes: array:12 [▼ 
"opportunityID" => 11 
"value" => 0 
"margin" => 0 
"tender_type" => "" 
"likelihood_of_success" => 0 
"high_level_background" => "" 
"scope_of_work" => "" 
"deliverables" => "" 
"duration" => "" 
"projectID" => 6 
"created_at" => "2015-03-11 17:45:47" 
"updated_at" => "2015-03-11 17:45:47" 
] 
    #original: array:12 [▶] 
#relations: [] 
#hidden: [] 
#visible: [] 
#appends: [] 
#fillable: [] 
#guarded: array:1 [▶] 
#dates: [] 
#casts: [] 
#touches: [] 
#observables: [] 
#with: [] 
#morphClass: null 
+exists: true 
} 

कौन सा सही है मिल गया है। मैं तो यदि मैं मर गया और डंप मैं

Opportunity {#259 ▼ 
#primaryKey: "OpportunityID" 
#table: "opportunitys" 
#connection: null 
#perPage: 15 
+incrementing: true 
+timestamps: true 
#attributes: array:12 [▼ 
"opportunityID" => 11 
"value" => "25000" 
"margin" => "0" 
"tender_type" => "Proposal" 
"likelihood_of_success" => "0" 
"high_level_background" => "" 
"scope_of_work" => "" 
"deliverables" => "" 
"duration" => "" 
"projectID" => 6 
"created_at" => "2015-03-11 17:45:47" 
"updated_at" => "2015-03-11 17:45:47" 
] 
#original: array:12 [▼ 
    "opportunityID" => 11 
    "value" => 0 
    "margin" => 0 
    "tender_type" => "" 
    "likelihood_of_success" => 0 
    "high_level_background" => "" 
    "scope_of_work" => "" 
    "deliverables" => "" 
    "duration" => "" 
    "projectID" => 6 
    "created_at" => "2015-03-11 17:45:47" 
    "updated_at" => "2015-03-11 17:45:47" 
] 
#relations: [] 
#hidden: [] 
#visible: [] 
#appends: [] 
#fillable: [] 
#guarded: array:1 [▶] 
#dates: [] 
#casts: [] 
#touches: [] 
#observables: [] 
#with: [] 
#morphClass: null 
+exists: true 
} 

मैं केवल मूल्य जो बदलाव को दर्शाता है बदल पाने

$something->margin = $request['margin']; 
    $something->duration = $request['duration']; 
    $something->tender_type = $request['tender_type']; 
    $something->likelihood_of_success = $request['likelihood_of_success']; 
    $something->scope_of_work = $request['scope_of_work']; 
    $something->deliverables = $request['deliverables']; 
    $something->high_level_background = $request['high_level_background']; 

अब के साथ इन अद्यतन करें।

मैं अब चलाने

$something->save(); 

यह सच रिटर्न जब मैं मर जाते हैं और यह डंप।

लेकिन डेटाबेस में कोई रिकॉर्ड नहीं बदला गया है।

कोई विचार? टिंकर

से

दो छवियों

Using Tinker to update

Using Tinker to update part 2

Var_dump after save

+1

सरणी $ अनुरोध क्या है? इसमें कोई मूल्य है? – Carter

+0

लार्वेल -5 में आप सभी पदों पर अनुरोध कक्षा का उपयोग करते हैं, यह लैरवेल 4.2 –

+1

में पुराने इनपुट का उपयोग करने के समान है, यदि यह अनुरोध का इंजेक्शन उदाहरण है, तो इसके बजाय इनपुट() को कॉल करके मूल्य प्राप्त करने का प्रयास करें, जैसे $ request-> इनपुट ('हाशिया')। – Carter

उत्तर

12

अवसर मॉडल समस्या का समाधान हो में इस लाइन।

Protected $primaryKey = "opportunityID"; 

हालांकि यह समझना मुश्किल है कि डेटा को पुनर्प्राप्त करना और नया रिकॉर्ड बनाना अभी भी संभव क्यों था।

+0

ऐसा लगता है जैसे आपके डेटाबेस/तालिका के एन्कोडिंग के साथ कुछ करना है। आपकी ऑब्जेक्ट के गुणों के साथ क्वेरी बनाने के लिए ''' 'save' तो यह वास्तव में अंत में लार्वेल नहीं है, यह केवल आपके द्वारा सेट की गई चाबियों के साथ एक क्वेरी बना रहा है। अब आपकी टेबल एन्कोडिंग चीजों को बदल सकती है, '' utf8_general_ci''' को आम तौर पर इस तरह की समस्या को चकमा देने की सिफारिश की जाती है। –

2

मेरे पास एक बहुत ही समान समस्या थी और यह पोस्ट मुझे समाधान के लिए ले जाती है। मैं भी primaryKey ओवरराइड कर रहा था।

पर्यावरण:

  • पीएचपी 7.1
  • लुमेन 5.3 (जाहिर है सुवक्ता सक्षम)
  • ओरेकल 12 (https://github.com/yajra/laravel-oci8 का उपयोग कर)

SELECT और INSERT संचालन protected $primaryKey = 'USER_ID'; के साथ काम है, तथापि, UPDATE ऑपरेशन काम नहीं किया, भले ही save()लौटा।

इस पोस्ट को ढूंढने के बाद मैंने मामला बदल दिया। protected $primaryKey = 'user_id';, व्हामी, सभी तीन ऑपरेशन काम करते हैं! काश मैं एक और ठोस स्पष्टीकरण था क्यों यह काम करता है। जब मैंने टेबल बनाया तो मैंने स्पष्ट रूप से ऊपरी USER_ID VARCHAR2(50 BYTE) NOT NULL का उपयोग किया।

संबंधित मुद्दे