/ / Yii2 में एक मॉडल की गतिशील घोषणा - yii2, yii2-advanced-app

Yii2 - yii2, yii2-advanced-app में एक मॉडल की गतिशील घोषणा

मैं एक मॉडल का एक उदाहरण गतिशील रूप से बनाना चाहता हूं। यह 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.");
}
}

ध्यान दें: केवल वर्तमान नाम स्थान के लिए काम करता है।