我在yii2中创建了一个API,除了put
方法之外,所有方法都正常工作。我在before_save
方法中获取数据,但在保存时会收到以下错误。
{“name”:“内部服务器错误”,“消息”:“无法更新 不明原因的对象。“,”“代码”:0,“状态”:500,
“type”:“yii \ web \ ServerErrorHttpException”}
这是我的控制器文件
ProductsController.php
<?php
namespace app\controllers;
use yii\rest\ActiveController;
use yii\filters\auth\HttpBearerAuth;
class ProductsController extends ActiveController {
public $modelClass = 'app\models\Product';
public function __construct($id, $module, $config = array()) {
parent::__construct($id, $module, $config);
}
public function behaviors() {
$behaviors = parent::behaviors();
$behaviors['authenticator'] = [
'class' => HttpBearerAuth::className(),
];
return $behaviors;
}
}
这是模型文件 Product.php
<?php
namespace app\models;
use yii\db\ActiveRecord;
use yii;
class Product extends ActiveRecord {
public static function tableName() {
return '{{%o2o_products}}';
}
public function rules() {
return [
[['name'], 'required'],
];
}
}
这是我的web.php
'urlManager' => [
'enablePrettyUrl' => true,
'enableStrictParsing' => false,
'showScriptName' => false,
'rules' => [
'<alias:index|about|contact|login>' => 'site/<alias>',
['class' => 'yii\rest\UrlRule', 'controller' => 'user'],
['class' => 'yii\rest\UrlRule', 'controller' => 'products'],
['class' => 'yii\rest\UrlRule', 'controller' => 'orders'],
],
]
我尝试在create和on update语句中删除rule
。但没有成功。
如果您需要其他任何东西,请告诉我。