मैं उपयोगकर्ता द्वारा किए गए प्रत्येक अनुरोध पर उपयोगकर्ता तालिका में "last_accessed" नामक फ़ील्ड को बदलने में सक्षम होना चाहता हूं।

मेरे पास "ContentController" नामक नियंत्रक है जो "नियंत्रक" को बढ़ाता है। तो मुझे लगा कि "नियंत्रक" के निर्माता में कोड जोड़ना है:

public function __construct()
{
  $user = \Auth::user();
  if (Auth::check()) {
    print 'Good';
  }
  else print "Bad";
}

कोई फर्क नहीं पड़ता कि मैं क्या करता हूं, मैं यह नहीं देख सकता कि मैं अधिकृत हूं।

क्या कोई कृपया मुझे बता सकता है:

  1. AUTH बेस कंट्रोलर में काम क्यों नहीं कर रहा है?
  2. यदि मेरा यह नियंत्रक विचार संभव नहीं है तो मैं प्रत्येक दृश्य पर last_accessed फ़ील्ड को कैसे अपडेट कर सकता हूं?
0
coderama 5 अप्रैल 2020, 22:36

1 उत्तर

सबसे बढ़िया उत्तर

क्योंकि वह __construct() में काम नहीं करता। एक उपाय है। यह काम करता है लेकिन मुझे यकीन नहीं है कि कुछ अन्य लारवेल उपयोगकर्ता मेरे उत्तर को स्वीकार करेंगे या नहीं। आपको क्या करना चाहिए एक मिडलवेयर बनाएं और वहां से काम करें। आप एक अनाम फ़ंक्शन का उपयोग कर सकते हैं, जो इस मामले में, एक मिडलवेयर की नकल करता है:

public function __construct(Request $request)
{
    $this->middleware(function ($request, $next) {
        $user = $request->user();
        if ($user) {
            print 'Good';
        }
        else print "Bad";

        return $next($request);
    });
} 

यदि कोई उपयोगकर्ता लॉग इन नहीं है, तो $user null होगा।

1
Dimitri Mostrey 6 अप्रैल 2020, 09:22