मैं एक मॉडल का एक उदाहरण गतिशील रूप से बनाना चाहता हूं। यह yii2 के साथ संभव है?
मैं कुछ इस तरह की कोशिश कर रहा हूं
<?php
namespace appcomponents;
use Yii;
use yiibaseComponent;
use yiibaseInvalidConfigException;
use yiiwebNotFoundHttpException;
use appmodels;
class SintelComponent extends Component
{
public function find($model_name, $id)
{
$magic = __NAMESPACE__."\".$model_name; //__NAMESPACE__ is a magic constant
if (($model = $magic::findOne($id)) !== null)
{
return $model;
}
else
{
throw new NotFoundHttpException("The requested page does not exist.");
}
}
}
$ model_name मॉडल का नाम है। जब मैं यह कोशिश करता हूं तो मुझे एक त्रुटि मिलती है
सिंटैक्स त्रुटि, अप्रत्याशित "$ model_name" (T_VARIABLE), अपेक्षा पहचानकर्ता (T_STRING)
उत्तर:
उत्तर № 1 के लिए 1मैं इसका परीक्षण नहीं कर पाऊंगा (मैं अपने फोन पर "एम), लेकिन क्या आप इसे इस तरह से करने की कोशिश कर सकते हैं:
public function find($model_name, $id)
{
$_model = "app\models\".$model_name;
if (($model = $_model::findOne($id)) !== null)
{
return $model;
}
else
{
throw new NotFoundHttpException("The requested page does not exist.");
}
}
जवाब के लिए 0 № 2
आप इस तरह से कोशिश कर सकते हैं:
namespace appmodels;
public function find($model_name, $id)
{
$magic = __NAMESPACE__."\".$model_name; //__NAMESPACE__ is a magic constant
if (($model = $magic::findOne($id)) !== null)
{
return $model;
}
else
{
throw new NotFoundHttpException("The requested page does not exist.");
}
}
ध्यान दें: केवल वर्तमान नाम स्थान के लिए काम करता है।