2013-10-25 12 views
7

मैं यह देखने के लिए एक टेबल खोजने का प्रयास कर रहा हूं कि "नाम" नामक कॉलम मौजूद है या नहीं, तो मान को वापस लौटाएं और यदि उस पंक्ति को शून्य मान के साथ नहीं बनाया गया है तो मैंने पहले देखा है Irrereate लेकिन मैं यह नहीं समझ सकता मेरे जीवन के लिए इसका इस्तेमाल करने के लिए।पहले से पहले दस्तावेज या उपयोग

यह मेरे पास वर्तमान में है, क्या कोई हाथ उधार दे सकता है?

class Settings extends Eloquent 
     { 
      protected $table = 'settings'; 
      protected $primaryKey = 'name'; 

      public static function get($settingName) 
       { 
        return self::firstOrCreate(array('name' => $settingName)); 
//     return self::select(array('value'))->where('name', '=', $settingName)->first()->value; 
       } 
     } 
+0

क्या आप 'लागू सेटिंग की वजह से हो रही है :: मिल ($ settingName) ' कोई त्रुटि संदेश? या ऐसा कुछ जिसे आप उम्मीद नहीं करते? –

+0

मुझे एक MassAssignmentException नाम मिल रहा है क्योंकि जिस नाम को मैं प्राप्त करने का प्रयास कर रहा हूं वह मौजूद नहीं है –

उत्तर

10

बनाने() विधि बड़े पैमाने पर काम करता है और यह एक बड़ा सुरक्षा मुद्दा है, इसलिए Laravel इसके खिलाफ एक सुरक्षा है। आंतरिक रूप से यह = ['*'] संरक्षित है, इसलिए आपके सभी कॉलम बड़े पैमाने पर असाइनमेंट के खिलाफ सुरक्षित होंगे।

सेट अपने मॉडल के fillable कॉलम:

class User extends Eloquent { 

    protected $fillable = array('first_name', 'last_name', 'email'); 

} 

या केवल लोगों को सेट आप सुरक्षित रखने के लिए चाहते हैं: आप कुछ विकल्प हैं

class User extends Eloquent { 

    protected $guarded = array('password'); 

} 

आप, अपने जोखिम पर भी करें:

class User extends Eloquent { 

    protected $guarded = array(); 

} 

और सबकुछ अनदेखा हो जाएगा।

ले लो एक एक डॉक्स देखो: http://laravel.com/docs/eloquent#mass-assignment

आप भी अपनी फसाड इस्तेमाल कर सकते हैं इसे कहते हैं:

class Settings extends Eloquent 
{ 
     protected $table = 'settings'; 
     protected $primaryKey = 'name'; 

     public static function get($settingName) 
     { 
      return Settings::firstOrCreate(array('name' => $settingName)); 
     } 
} 
+0

मेरे पास जो समस्या है, वह सेटिंग :: get ('example') को कॉल करते समय है; और परीक्षा उदाहरण डेटाबेस बनाने के बजाय डेटाबेस में मौजूद नहीं है, मुझे नाम –

+0

का MassAssignmentException मिलता है, इसके अलावा मेरे फेकाडे द्वारा कॉलिंग स्वयं :: का उपयोग करने से बेहतर क्यों होगी? –

+0

आप वास्तव में बड़े पैमाने पर असाइन कर रहे हैं, इसलिए आपको अपने सभी कॉलम को असाइन करने की आवश्यकता होने पर, अपने मॉडल में 'संरक्षित $ संरक्षित = [];' जोड़ना होगा। –

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