Nie mogę wyjaśnić, dlaczego ustawienie domyślnej wartości nie działa dla mnie.Ustawianie domyślnej wartości modelu w zależności od scenariusza
Oto mój kontroler:
class QueryController extends ActiveController
{
public $modelClass = 'app\models\Query';
public $createScenario = 'restCreate';
public $updateScenario = 'restUpdate';
nie zastąpić domyślny createAction
metody.
Model:
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;
}
Podczas tworzenia nowego wpisu za pomocą sterownika spoczynku, należy ustawić isApi = true
domyślnie, ale to nie działa w taki sposób. Jak przypisać domyślne wartości modelu w zależności od scenariusza?
Wartości domyślne w regule modelu są stosowane, gdy pole jest puste. Nie sądzę, żeby wypełniał pola. –
@ck_arjun, dobrze, więc powinienem opublikować go w formularzu i ustawić go jako '$ this-> isApi = '' 'Mam rację? –