我想更改yii2应用历史记录视图中显示的内容,以便我不会显示某个人的ID,但他的名字和姓氏。
这是我数据网格的一部分
[
'attribute' => 'oldPerson.Id',
'label' => Yii::t('app', 'Previously In Charge'),
'value' => function($model){
return $model->person->FirstName . ' ' . $model->person->LastName; }
],
但这并不好,因为我的$model
是一个历史对象,其中包含一个人的ID。我不知何故需要根据该ID获取整个 person 对象,但我不知道如何。
这是我的 Person 模型:
namespace app\models;
use Yii;
use \app\models\base\Person as BasePerson;
/**
* This is the model class for table "person".
*/
class Person extends BasePerson
{
public $created_at;
public $created_by;
public $updated_at;
public $updated_by;
public $id;
/**
* @inheritdoc
*/
public function rules()
{
return array_replace_recursive(parent::rules(),
[
[['FirstName', 'LastName', 'Title', 'CitizenNumber', 'Employment', 'Contact'], 'required'],
[['FirstName'], 'string', 'max' => 20],
[['LastName'], 'string', 'max' => 40],
[['Title'], 'string', 'max' => 50],
[['CitizenNumber'], 'string', 'max' => 13],
[['Employment', 'Contact'], 'string', 'max' => 100],
[['CitizenNumber'], 'unique']
]);
}
}
答案 0 :(得分:1)
通常你可以通过这种方式获得基于id的模型
public function findModel($id)
{
if (($model = Person ::findOne($id)) !== null) {
return $model;
} else {
throw new NotFoundHttpException('The requested page does not exist.');
}
}
$ model包含与$ id
相关的Person信息答案 1 :(得分:0)
它也工作正常
$model=Modelname::findOne($id);