2014-11-23 15 views
124

लार्वेल के लिए नया, तो नौसिखिया प्रश्न से बहाना है लेकिन रिकॉर्ड कैसे मौजूद है, तो मुझे कैसे पता चलेगा?रिकॉर्ड मौजूद है यदि रिकॉर्ड मौजूद है

$user = User::where('email', '=', Input::get('email')); 

क्या मैं यहाँ अगर $user एक रिकॉर्ड है देखने के लिए क्या करेंगे?

+2

खैर() या $ उपयोगकर्ता क्वेरी –

+5

पर समान है जो वास्तव में – Ben

+1

की सहायता नहीं करता है तो यह क्या करता है? यह मदद क्यों नहीं करता है? '$ उपयोगकर्ता = उपयोगकर्ता :: जहां ('ईमेल', '=', इनपुट :: प्राप्त करें ('ईमेल')); 'बस' $ उपयोगकर्ता' में एक क्वेरी बनाता है, आपको उस क्वेरी को निष्पादित करने की आवश्यकता है। 'findOrFail()' उस क्वेरी को निष्पादित करने का एक तरीका है। 'get()' एक और तरीका होगा, 'firstOrFail()' दूसरा –

उत्तर

291

यह निर्भर करता है कि आप बाद में उपयोगकर्ता के साथ काम करना चाहते हैं या केवल जांचें कि कोई मौजूद है या नहीं।

आप यदि वह मौजूद उपयोगकर्ता ऑब्जेक्ट का उपयोग करना चाहते हैं:

$user = User::where('email', '=', Input::get('email'))->first(); 
if ($user === null) { 
    // user doesn't exist 
} 

और आप केवल

if (User::where('email', '=', Input::get('email'))->count() > 0) { 
    // user found 
} 

या यहां तक ​​कि अच्छे

if (User::where('email', '=', Input::get('email'))->exists()) { 
    // user found 
} 
+7

बदलने की अगर आप फोन 'मौजूद है()' के खिलाफ एक गैर विद्यमान रिकॉर्ड तो यह त्रुटि देता है: 'एक सदस्य समारोह में मौजूद है() को null' – Volatil3

+12

पर कॉल @ Volatil3 आप कुछ गलत कर रहे हैं। आप पहले ही क्वेरी – lukasgeiter

+4

@lukasgeiter अनुमान लगाए जाने के बाद मौजूद नहीं हैं, आप अनुमान लगा सकते हैं कि आप सही हैं। मैं पहले से ही बुलाया था 'पहले()' – Volatil3

12

में से एक की जाँच करना चाहते हैं सबसे अच्छा समाधान firstOrNew या firstOrCreate विधि का उपयोग करना है।

+3

सवाल को फ़िट नहीं करते समय भी, बहुत उपयोगी कार्य। दोनों के बीच अंतर यह है कि firstOrNew ** को दर्शाता है ** मॉडल कहा जाता का एक उदाहरण है, जबकि firstOrCreate तुरन्त पूछे मॉडल की बचत होती है, ताकि आप firstOrCreate'd मॉडल पर परिवर्तन अद्यतन करने की आवश्यकता है। – Gokigooooks

0

यह अगर कोई रिकॉर्ड या नहीं कर रहे हैं पता करने के लिए

$user = User::where('email', '=', Input::get('email'))->get(); 
if(count($user) > 0) 
{ 
echo "There is data"; 
} 
else 
echo "No data"; 
-2

इस ईमेल की जांच करने के लिए मौजूद या डेटाबेस

 

    $data = $request->all(); 
    $user = DB::table('User')->pluck('email')->toArray(); 
    if(in_array($user,$data['email'])) 
    { 
    echo 'existed email'; 
    } 

+3

आप एक तालिका उपयोगकर्ता के साथ ... over1,000,000,000 रिकॉर्ड कहना है, तो आप एक veeeeeeery लंबे समय के लिए जाँच हो जाएगा – TrueStory

0

में नहीं अपने नियंत्रक में है सरल कोड है पाने के लिए आसान है

$this->validate($request, [ 
     'email' => 'required|unique:user|email', 
    ]); 

आपके विचार में - प्रदर्शन पहले से ही संदेश

@if (count($errors) > 0) 
    <div class="alert alert-danger"> 
     <ul> 
      @foreach ($errors->all() as $error) 
       <li>{{ $error }}</li> 
      @endforeach 
     </ul> 
    </div> 
@endif 
0
मौजूद
$user = User::where('email', request('email')->first(); 
return (count($user) > 0 ? 'Email Exist' : 'Email Not Exist'); 
0

आप लार्वा सत्यापन का उपयोग कर सकते हैं।

लेकिन इस कोड भी अच्छा है:

$user = User::where('email', $request->input('email'))->count(); 

if($user > 0) 
{ 
    echo "There is data"; 
} 
else 
    echo "No data"; 
0

यह विशेष रूप से ईमेल पते तालिका में मौजूद है, तो जाँच करेगा: यदि आप एक findOrFail पर अमल करने की जरूरत है शुरू करने के लिए

if (isset(User::where('email', Input::get('email'))->value('email'))) 
{ 
    // Input::get('email') exist in the table 
} 
संबंधित मुद्दे