यहाँ स्थिति है प्रदर्शित नहीं करता है:Laravel 5.2 सुवक्ता बनाने() विधि विदेशी महत्वपूर्ण अपवाद से पता चलता है, लेकिन बचाने के() किसी भी त्रुटि
मैं दो तालिकाओं उपयोगकर्ताओं और परियोजनाओं की है। उपयोगकर्ता तालिका में प्रोजेक्ट टेबल के साथ कई संबंध हैं। जब मैं Model::create()
विधि का उपयोग कर प्रोजेक्ट टेबल में डेटा डालने का प्रयास करता हूं, तो यह विदेशी कुंजी बाधा त्रुटि दिखाता है। लेकिन जब मैं प्रोजेक्ट मॉडल का एक उदाहरण बनाता हूं और विशेषता सेट करता हूं और $modelObject->save()
विधि का उपयोग करता हूं तो यह काम करता है। (: PostStart() फंक्शन) -
public function postStart(Request $request)
{
$input = $request->input();
$project = Project::create(array(
'title' => $input['title'],
'main_category_id' => $input['category'],
'user_id' => Auth::id(),
'slug' => Helper::slug($input['title']),
));
$project['slug'] = Helper::slug($input['title'], $project->id);
$project->save();
return redirect('project/'.$project->slug.'/edit');
}
Project.php (मॉडल)
class Project extends Model
{
protected $fillable = ['user_id', 'main_category_id', 'sub_category_id', 'title', 'slug', 'description', 'project_location', 'project_url', 'project_image', 'type', 'min_bid_amount'];
public static $updatable = ['user_id' => "", 'main_category_id' => "", 'sub_category_id' => "", 'title' => "", 'slug' => "", 'description' => "", 'project_location' => "", 'project_url' => "", 'project_image' => "", 'type' => "", 'min_bid_amount' => ""];
public function user() {
return $this->belongsTo('User');
}
}
और यहाँ है नीचे कोड
ProjectsController.php (नियंत्रक) है त्रुटि
Connection.php लाइन 673 में क्वेरी अपवाद: SQLSTATE [23000]: ईमानदारी बाधा उल्लंघन: 1452 बच्चे पंक्ति को जोड़ या अपडेट नहीं कर सकता: एक विदेशी कुंजी बाधा विफल हो जाती है (
kickstarter
।projects
, बाधाprojects_user_id_foreign
विदेशी कुँजी (user_id
) संदर्भusers
(id
)): मूल्यों (एसक्यूएलprojects
(updated_at
,created_at
में डालने) (2016/05/24 13:00:27, 2016/05/24 13:00:27))
लेकिन जब मैं $modelObject->save()
विधि का उपयोग करता हूं तो यह काम करता है। मुझे समझ में नहीं आता कि समस्या क्या है। अगर मुझे समाधान मिला तो यह बहुत उपयोगी होगा।
हैलो @ f0rtis, उत्तर के लिए धन्यवाद। मैंने संबंध को सही किया है लेकिन त्रुटि अभी भी बनी हुई है। यहां तक कि मैं मॉडल क्लास ऑब्जेक्ट को मैन्युअल रूप से एट्रिब्यूट्स और $ modelObject-> save() का उपयोग करके डेटा को सहेजने में सक्षम हूं। मुझे समझ में नहीं आता कि मॉडल :: create() इस फ़ंक्शन में क्यों काम नहीं कर रहा है। लेकिन मैं अन्य कार्यों में मॉडल :: create() का उपयोग कर रहा हूं और यह ठीक काम कर रहा है। –
@ जितेंद्रेंंगला जैसा मैंने कहा - क्या आप वाकई अपनी कक्षा के '__construct' को फिर से लागू नहीं करते हैं? या हो सकता है कि 'भरें' विधि या 'setAttribute'? शायद यह विस्तारित कक्षा – f0rtis
हैलो @fortis में किया गया था, आपकी धारणा सही है। मैंने सार्वजनिक फ़ोल्डर में कुछ पथ आरंभ करने के लिए मॉडल क्लास में '__construct' का उपयोग किया है। क्या यह कुछ भी प्रभावित करता है? –