2014-06-10 8 views
10

पर ध्यान नहीं देता Laravel 4 के साथ Input:all() की सामग्री var_dumping समय, मैंने देखा कि निम्न कोड के साथ उत्पन्न एक इनपुट ढांचे द्वारा नजरअंदाज कर दिया जाता है:Laravel के इनपुट: सभी() विकलांग आदानों

{{ Form::text('departure', 'Departure', array('class' => 'form-control', 'disabled')) }} 

लेकिन उस निम्नलिखित काम करता है जैसा कि अपेक्षित था:

{{ Form::text('departure', 'Departure', array('class' => 'form-control')) }} 

मेरे पास इस इनपुट फ़ील्ड में उपयोगकर्ता के संदेश को अक्षम करने का एक अच्छा कारण है। फिर भी मुझे इसे डेटाबेस में सहेजने की ज़रूरत है। मुझे यह कैसे करना चाहिए? जब उपयोगकर्ता फॉर्म सबमिट करता है तो jQuery के साथ disabled विशेषता अक्षम करें? यह थोड़ा हास्यास्पद है, है ना?

उत्तर

27

बस बदलने disabledreadonly

+0

यह काम किया, धन्यवाद! इस HTML विशेषता को नहीं पता था। जैसे ही मुझे अनुमति है, मैं आपके उत्तर को स्वीकार करूंगा। –

+0

बिल्कुल सही! धन्यवाद एक टन रेजर! –

3

को यह एक बुरा विचार disabled या readonly तरह HTML झंडे पर भरोसा करने की है। उपयोगकर्ता इंस्पेक्टर को आसानी से खोल सकता है और फ़ील्ड के मान को बदल सकता है। टेम्पलेट में बिल्कुल इसका खुलासा न करें, यह व्यवसाय तर्क है जो मॉडल में है!

क्या आप इनपुट :: सभी() को फ़ील्ड को डेटाबेस में सहेजने के लिए लूप कर रहे हैं?

$allowedFields = ["field1", "field2", "field3" ...]; 
foreach($allowedFields as $field) { 
    if(Input::has($field) { 
     $myEloquentModel->{$field} = Input::get($field); 
    } 
} 
$myEloquentModel->save(); 

लाभ:: केवल अनुमति क्षेत्रों चेक, वास्तविक अनुरोध में ही मौजूद क्षेत्रों अद्यतन करता है यदि हां, तो आप कुछ इस तरह लिख सकते हैं।

+3

'इनपुट :: केवल (" फ़ील्ड 1 "," फ़ील्ड 2 ") 'बिल्कुल इस के लिए एक सहायक कार्य है। – alexn

+0

असल में वे चर जो मैं संग्रहीत करता हूं वे जावास्क्रिप्ट मान हैं जो मुझे डब्ल्यू 3 सी जिओलोकेशन एपीआई से मिलता है। मुझे पता है कि उपयोगकर्ता उन्हें बदल देगा कि जोखिम है लेकिन मैं इस मामले में जावास्क्रिप्ट के बिना नहीं कर सकता, क्या मैं कर सकता हूं? –

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