Я новичок в структуре Yii 2 и PHP. Когда я пытаюсь получить данные модели с сервера как Json, я получаю пустые данные. Но когда я использую var_dump, я получаю результат. Код на контроллере приведен ниже.
// function inside class ClientController public function actionIndex() { $client=new Client(); $client->name="ajith"; echo json_encode($client); }
Код класса модели приведен ниже
class Client extends \yii\mongodb\ActiveRecord { public static function collectionName() { return ['gym', 'client']; } public function attributes() { return [ '_id', 'name', 'age', 'sex', 'phoneno', 'email', 'address', 'location' ]; } public function rules() { return [ [['name', 'age', 'sex', 'phoneno', 'email', 'address', 'location'], 'safe'] ]; } public function attributeLabels() { return [ '_id' => 'ID', 'name' => 'Name', 'age' => 'Age', 'sex' => 'Sex', 'phoneno' => 'Phoneno', 'email' => 'Email', 'address' => 'Address', 'location' => 'Location', ]; } }
Когда я использую URL path pathToServer/web/client
, я получаю результат, который будет отображаться как {}. Почему это так. Я использую MongoDB в качестве базы данных.
Импортировать веб-класс ответа:
use yii\web\Response;
Скажите Yii, какой формат вы хотите в результате, установив Yii::$app->response->format
перед возвратом:
public function actionExample() { Yii::$app->response->format = Response::FORMAT_JSON; $data = ["success" => true, "message" => "Hello"]; return $data; }
Результат:
{ "success": true, "message": "Hello" }
Вы можете прочитать о форматах ответов в документации .
Использование может использовать помощник JSON и вместо этого вернуть.
Прежде всего импортируйте помощник Yii2 JSON
use yii\helpers\Json;
Ваш код будет выглядеть так:
public function actionIndex() { $client = new Client(); $client->name = "ajith"; return Json::encode($client); }