Я пытаюсь присвоить значение функции «значение» в DetailView. Но когда я пытаюсь, я получаю сообщение об ошибке «Объект класса Closure не может быть преобразован в строку»
Я попытался вернуть значение функции, присвоив ее другой переменной, но все равно такую же ошибку.
Может кто-нибудь помочь мне понять это, пожалуйста?
<?= DetailView::widget([ 'model' => $model, 'attributes' => [ 'Task_ID', 'Task_Title', 'Description', 'projects.project_name', //display project name instead of project id // 'Assign_task_to', //'tasksemp.Employee_ID', [ 'attribute' => 'Assign_task_to', 'format' => 'raw', $data = function ($model) { $assignEmpModel = Tasksemp::find()->where(['Task_ID' => $model->Task_ID])->all(); //get all the rows with teh same task_id $employes = ''; //empty string foreach ( $assignEmpModel as $employee ) { $emp = Employee::find()->where(['Employee_ID'=>$employee->Employee_ID])->one(); //get all the employee_id $name = $emp['employee_name']; //get the employee_name from the employees table $employes .= ' '.$name.', '; //concatenate the names. } // return implode(', ',$employes); //return $employes; }, 'value' => $data, ], 'start_date', 'due_date', 'priotiy_level', 'upload_documents', ], ]) ?>
Я попытался назначить функцию переменной $ data, но не работает.
Я также попытался назначить функцию непосредственно на значение, но такую же ошибку.
[ 'attribute' => 'Assign_task_to', 'format' => 'raw', 'value' => function ($model) { //<----- ERROR HERE! $assignEmpModel = Tasksemp::find()->where(['Task_ID' => $model->Task_ID])->all(); //get all the rows with teh same task_id $employes = ''; //empty string foreach ( $assignEmpModel as $employee ) { $emp = Employee::find()->where(['Employee_ID'=>$employee->Employee_ID])->one(); //get all the employee_id $name = $emp['employee_name']; //get the employee_name from the employees table $employes .= ' '.$name.', '; //concatenate the names. } return $employes; }, ],
Пробовал решение Bizley следующим образом:
<?php $assignEmpModel = Tasksemp::find()->where(['Task_ID' => $model->Task_ID])->all(); //get all the rows with teh same task_id $employes = ''; //empty string foreach ( $assignEmpModel as $employee ) { $emp = Employee::find()->where(['Employee_ID'=>$employee->Employee_ID])->one(); //get all the employee_id $name = $emp['employee_name']; //get the employee_name from the employees table $employes .= ' '.$name.', '; //concatenate the names. ?> <?= DetailView::widget([ 'model' => $model, 'attributes' => [ 'Task_ID', 'Task_Title', 'Description', 'projects.project_name', //display project name instead of project id // 'Assign_task_to', //'tasksemp.Employee_ID', [ 'attribute' => 'Assign_task_to', 'format' => 'raw', 'value' => $employes, ], 'start_date', 'due_date', 'priotiy_level', 'upload_documents', ], ]) ?>
Но теперь ошибка говорит о неожиданном конце файла.