Tôi không thể phân loại tại sao cài đặt giá trị mặc định không hoạt động đối với tôi.Đặt giá trị kiểu mặc định tùy thuộc vào một trường hợp
Đây là bộ điều khiển của tôi:
class QueryController extends ActiveController
{
public $modelClass = 'app\models\Query';
public $createScenario = 'restCreate';
public $updateScenario = 'restUpdate';
tôi không ghi đè lên các phương pháp mặc định createAction
.
mẫu:
class Query extends ActiveRecord
{public function rules()
{
return [
[['userId', 'name', 'created', 'isOneTime', 'isArchived', 'settings', 'engine'], 'required'],
[['userId'], 'integer'],
[['name', 'settings', 'schedule'], 'string'],
[['created', 'lastUpdate'], 'safe'],
[['isOneTime', 'isArchived', 'isApi', 'valid'], 'boolean'],
[['state', 'engine'], 'string', 'max' => 160],
[['isApi'], 'default', 'value'=> false],
[['isApi'], 'default', 'value'=> true, 'on' => 'restCreate']
];
}
public function scenarios()
{
$scenarios = parent::scenarios();
$scenarios['restCreate'] = ['name', 'state', 'isApi', 'isOneTime', 'settings', 'schedule'];
$scenarios['restUpdate'] = ['name', 'state', 'isOneTime', 'settings', 'schedule' ];
return $scenarios;
}
Khi tôi tạo ra một mục mới thông qua một bộ điều khiển Nghỉ ngơi, cần thiết isApi = true
theo mặc định, nhưng nó không hoạt động theo cách như vậy. Làm thế nào tôi có thể gán một giá trị mô hình mặc định tùy thuộc vào kịch bản?
Giá trị mặc định trong quy tắc mô hình được áp dụng khi trường trống. Tôi không nghĩ rằng nó điền vào các lĩnh vực. –
@ck_arjun, được rồi, vậy tôi nên đăng nó qua biểu mẫu và đặt nó như một '$ this-> isApi = '' 'Tôi có đúng không? –