यहां मेरा रीस्टफुल कंट्रोलर कैसा दिखता है।वाईआई 2 आरामदायक नियंत्रक में अतिरिक्त कार्य कैसे करें?
<?php
namespace backend\controllers;
use yii\rest\Controller;
use yii;
use yii\web\Response;
use yii\helpers\ArrayHelper;
class UserController extends \yii\rest\ActiveController
{
public function behaviors()
{
return ArrayHelper::merge(parent::behaviors(), [
[
'class' => 'yii\filters\ContentNegotiator',
'only' => ['view', 'index'], // in a controller
// if in a module, use the following IDs for user actions
// 'only' => ['user/view', 'user/index']
'formats' => [
'application/json' => Response::FORMAT_JSON,
],
'languages' => [
'en',
'de',
],
],
[
'class' => \yii\filters\Cors::className(),
'cors' => [
'Origin' => ['*'],
'Access-Control-Request-Method' => ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'],
'Access-Control-Request-Headers' => ['*'],
'Access-Control-Allow-Credentials' => true,
'Access-Control-Max-Age' => 86400,
],
],
]);
}
public $modelClass = 'backend\models\User';
public function actions()
{
}
public function sendMail(){
\t //Need to call this function on every create
\t //This should also have the information about the newly created user
}
}
यह डिफ़ॉल्ट व्यवहार के साथ बहुत अच्छी तरह से काम करता है, लेकिन यह बहुत ही व्यावहारिक है कि आप बस उपयोगकर्ता और बाहर निकलने का निर्माण करेगा नहीं है। आपको सत्यापन लिंक एसएमएस आदि के साथ ईमेल भेजने की आवश्यकता है, इस क्रिया के आधार पर कुछ अन्य मॉडल अपडेट हो सकते हैं।
मैं पूरी तरह से निर्माण विधि को ओवरराइड नहीं करना चाहता क्योंकि यह डेटा को बचाने और JSON वापस लौटने के लिए अच्छी तरह से काम करता है। मैं सिर्फ एक कॉलबैक प्रकार को जोड़कर अपनी कार्यक्षमता का विस्तार करना चाहता हूं जो नव निर्मित उपयोगकर्ता को स्वीकार कर सकता है और व्यक्ति को ईमेल भेज सकता है।
मैंने इस फ़ंक्शन को मेरे कोड में जोड़ा है लेकिन इसे कॉल नहीं किया जा रहा है, क्या मुझे इसे ओवरराइड करने के लिए कुछ लिखना होगा? – Viky293
@ Viky293 यह आपके 'मॉडल' वर्ग में एक विधि है। मेरा मतलब है: 'बैकएंड \ मॉडल \ उपयोगकर्ता'। आपको इसे 'बैकएंड \ मॉडल \ उपयोगकर्ता' कक्षा में ओवरराइड करना होगा। –
मदद के लिए धन्यवाद, लेकिन मैं मॉडल के अंदर ईमेल भेजने के लिए कोड नहीं रखना चाहता हूं। मैंने बाद में एक्शन() फ़ंक्शन के साथ प्रयास किया है, जैसा कि आपने समझाया है, लेकिन मुझे भी एक अच्छा समाधान नहीं मिला है क्योंकि सभी नियंत्रक कार्यों के बाद कार्रवाई को कॉल किया जाएगा। – Viky293