Error: expression is not allowed as field default value
内容
名前の通り、フィールドのデフォルト値として式を使用できないため、エラーが発生しました.
https://www.php.net/manual/en/language.oop5.constants.php
解決策ジェネレータ https://stackoverflow.com/questions/54417100/expression-is-not-allowed-as-field-default-value-on-oop
https://stackoverflow.com/questions/35037368/expression-is-not-allowed-as-field-default-value過負荷
https://www.php.net/manual/en/language.oop5.overloading.php#object.isset
せいぎょそうち
expression is not allowed as field default value
classファイルでは、関数式を定数として定義しようとしましたが、上記のエラーメッセージが表示されました.名前の通り、フィールドのデフォルト値として式を使用できないため、エラーが発生しました.
https://www.php.net/manual/en/language.oop5.constants.php
解決策
https://stackoverflow.com/questions/35037368/expression-is-not-allowed-as-field-default-value
/**
* 생성자에서 프로퍼티값 선언하기
*/
__construct() {
parent::__construct();
$this->career_levels = CareerLevel::all()->pluck('name', 'id')->toArray();
}
質問:インスタンスを作成するたびにDeviクエリが実行されます__isset()
magicメソッドをリポジトリで初めて使用し、存在しない場合にのみデバイスから1回取得するようにチェックします.https://www.php.net/manual/en/language.oop5.overloading.php#object.isset
せいぎょそうち
/**
* 선언되지 않은 프로퍼티를 디비에서 가져오기
*/
public function __isset(string $name): bool
{
if ($name === 'career_levels') {
$this->career_levels = CareerLevel::all()->pluck('name', 'id')->toArray();
}
return isset($this->{$name});
}
ビューファイル<select id="career_levels" name="career_levels" required>
<option>{{ __('Select') }}</option>
@foreach ($careerLevels as $careerLevel)
<option value="{{ $careerLevel->id }}"
{{ __isset($careerLevel->id) ? 'selected' : '' }}>
{{ $careerLevel->name }}
</option>
@endforeach
</select>
Reference
この問題について(Error: expression is not allowed as field default value), 我々は、より多くの情報をここで見つけました https://velog.io/@inhalin/Error-expression-is-not-allowed-as-field-default-valueテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol