diff --git a/docs-assets/app/app/Models/Post.php b/docs-assets/app/app/Models/Post.php index 52d00dbe7d..2ad76e2658 100644 --- a/docs-assets/app/app/Models/Post.php +++ b/docs-assets/app/app/Models/Post.php @@ -10,9 +10,15 @@ class Post extends Model { use HasFactory; - protected $casts = [ - 'is_featured' => 'boolean', - ]; + /** + * @return array + */ + protected function casts(): array + { + return [ + 'is_featured' => 'boolean', + ]; + } public function author(): BelongsTo { diff --git a/docs-assets/app/app/Models/User.php b/docs-assets/app/app/Models/User.php index e1d34a33bb..e90503fe11 100644 --- a/docs-assets/app/app/Models/User.php +++ b/docs-assets/app/app/Models/User.php @@ -37,14 +37,15 @@ class User extends Authenticatable implements FilamentUser ]; /** - * The attributes that should be cast. - * - * @var array + * @return array */ - protected $casts = [ - 'colleagues' => 'array', - 'email_verified_at' => 'datetime', - ]; + protected function casts(): array + { + return [ + 'colleagues' => 'array', + 'email_verified_at' => 'datetime', + ]; + } public function canAccessPanel(Panel $panel): bool { diff --git a/docs/07-users/02-multi-factor-authentication.md b/docs/07-users/02-multi-factor-authentication.md index 3f57741386..0986e05227 100644 --- a/docs/07-users/02-multi-factor-authentication.md +++ b/docs/07-users/02-multi-factor-authentication.md @@ -60,12 +60,15 @@ class User extends Authenticatable implements FilamentUser, MustVerifyEmail ]; /** - * @var array + * @return array */ - protected $casts = [ - // ... - 'app_authentication_secret' => 'encrypted', - ]; + protected function casts(): array + { + return [ + // ... + 'app_authentication_secret' => 'encrypted', + ]; + } // ... } @@ -165,12 +168,15 @@ class User extends Authenticatable implements FilamentUser, HasAppAuthentication ]; /** - * @var array + * @return array */ - protected $casts = [ - // ... - 'app_authentication_recovery_codes' => 'encrypted:array', - ]; + protected function casts(): array + { + return [ + // ... + 'app_authentication_recovery_codes' => 'encrypted:array', + ]; + } // ... } @@ -337,14 +343,16 @@ use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable implements FilamentUser, MustVerifyEmail { - // ... /** - * @var array + * @return array */ - protected $casts = [ - // ... - 'has_email_authentication' => 'boolean', - ]; + protected function casts(): array + { + return [ + // ... + 'has_email_authentication' => 'boolean', + ]; + } // ... } diff --git a/packages/actions/src/Exports/Models/Export.php b/packages/actions/src/Exports/Models/Export.php index e3ce96271b..445d12fba2 100644 --- a/packages/actions/src/Exports/Models/Export.php +++ b/packages/actions/src/Exports/Models/Export.php @@ -27,12 +27,18 @@ class Export extends Model { use Prunable; - protected $casts = [ - 'completed_at' => 'timestamp', - 'processed_rows' => 'integer', - 'total_rows' => 'integer', - 'successful_rows' => 'integer', - ]; + /** + * @return array + */ + protected function casts(): array + { + return [ + 'completed_at' => 'timestamp', + 'processed_rows' => 'integer', + 'total_rows' => 'integer', + 'successful_rows' => 'integer', + ]; + } protected $guarded = []; diff --git a/packages/actions/src/Imports/Models/FailedImportRow.php b/packages/actions/src/Imports/Models/FailedImportRow.php index 998a3fcb7b..73716c600e 100644 --- a/packages/actions/src/Imports/Models/FailedImportRow.php +++ b/packages/actions/src/Imports/Models/FailedImportRow.php @@ -16,9 +16,15 @@ class FailedImportRow extends Model { use Prunable; - protected $casts = [ - 'data' => 'array', - ]; + /** + * @return array + */ + protected function casts(): array + { + return [ + 'data' => 'array', + ]; + } protected $guarded = []; diff --git a/packages/actions/src/Imports/Models/Import.php b/packages/actions/src/Imports/Models/Import.php index 14da67f7ff..3a4992ebb8 100644 --- a/packages/actions/src/Imports/Models/Import.php +++ b/packages/actions/src/Imports/Models/Import.php @@ -28,12 +28,18 @@ class Import extends Model { use Prunable; - protected $casts = [ - 'completed_at' => 'timestamp', - 'processed_rows' => 'integer', - 'total_rows' => 'integer', - 'successful_rows' => 'integer', - ]; + /** + * @return array + */ + protected function casts(): array + { + return [ + 'completed_at' => 'timestamp', + 'processed_rows' => 'integer', + 'total_rows' => 'integer', + 'successful_rows' => 'integer', + ]; + } protected $guarded = []; diff --git a/packages/forms/docs/03-select.md b/packages/forms/docs/03-select.md index d8509691da..91b3d8cfb5 100644 --- a/packages/forms/docs/03-select.md +++ b/packages/forms/docs/03-select.md @@ -219,9 +219,15 @@ use Illuminate\Database\Eloquent\Model; class App extends Model { - protected $casts = [ - 'technologies' => 'array', - ]; + /** + * @return array + */ + protected function casts(): array + { + return [ + 'technologies' => 'array', + ]; + } // ... } diff --git a/packages/forms/docs/04-checkbox.md b/packages/forms/docs/04-checkbox.md index 362e49727d..186dce1be1 100644 --- a/packages/forms/docs/04-checkbox.md +++ b/packages/forms/docs/04-checkbox.md @@ -23,9 +23,15 @@ use Illuminate\Database\Eloquent\Model; class User extends Model { - protected $casts = [ - 'is_admin' => 'boolean', - ]; + /** + * @return array + */ + protected function casts(): array + { + return [ + 'is_admin' => 'boolean', + ]; + } // ... } diff --git a/packages/forms/docs/05-toggle.md b/packages/forms/docs/05-toggle.md index 76db27c27d..902091b795 100644 --- a/packages/forms/docs/05-toggle.md +++ b/packages/forms/docs/05-toggle.md @@ -23,9 +23,15 @@ use Illuminate\Database\Eloquent\Model; class User extends Model { - protected $casts = [ - 'is_admin' => 'boolean', - ]; + /** + * @return array + */ + protected function casts(): array + { + return [ + 'is_admin' => 'boolean', + ]; + } // ... } diff --git a/packages/forms/docs/06-checkbox-list.md b/packages/forms/docs/06-checkbox-list.md index 0deae5e71e..9a69220faa 100644 --- a/packages/forms/docs/06-checkbox-list.md +++ b/packages/forms/docs/06-checkbox-list.md @@ -32,9 +32,15 @@ use Illuminate\Database\Eloquent\Model; class App extends Model { - protected $casts = [ - 'technologies' => 'array', - ]; + /** + * @return array + */ + protected function casts(): array + { + return [ + 'technologies' => 'array', + ]; + } // ... } diff --git a/packages/forms/docs/09-file-upload.md b/packages/forms/docs/09-file-upload.md index 974a03ea54..6eef913603 100644 --- a/packages/forms/docs/09-file-upload.md +++ b/packages/forms/docs/09-file-upload.md @@ -75,9 +75,15 @@ use Illuminate\Database\Eloquent\Model; class Message extends Model { - protected $casts = [ - 'attachments' => 'array', - ]; + /** + * @return array + */ + protected function casts(): array + { + return [ + 'attachments' => 'array', + ]; + } // ... } diff --git a/packages/forms/docs/10-rich-editor.md b/packages/forms/docs/10-rich-editor.md index 64ce0f5bad..c0aa409f58 100644 --- a/packages/forms/docs/10-rich-editor.md +++ b/packages/forms/docs/10-rich-editor.md @@ -37,9 +37,15 @@ use Illuminate\Database\Eloquent\Model; class Post extends Model { - protected $casts = [ - 'content' => 'array', - ]; + /** + * @return array + */ + protected function casts(): array + { + return [ + 'content' => 'array', + ]; + } // ... } diff --git a/packages/forms/docs/14-tags-input.md b/packages/forms/docs/14-tags-input.md index 4cdfd827f1..6d015ef66b 100644 --- a/packages/forms/docs/14-tags-input.md +++ b/packages/forms/docs/14-tags-input.md @@ -26,9 +26,15 @@ use Illuminate\Database\Eloquent\Model; class Post extends Model { - protected $casts = [ - 'tags' => 'array', - ]; + /** + * @return array + */ + protected function casts(): array + { + return [ + 'tags' => 'array', + ]; + } // ... } diff --git a/packages/forms/docs/16-key-value.md b/packages/forms/docs/16-key-value.md index 2edfc7ec96..1e52a6baee 100644 --- a/packages/forms/docs/16-key-value.md +++ b/packages/forms/docs/16-key-value.md @@ -23,9 +23,15 @@ use Illuminate\Database\Eloquent\Model; class Post extends Model { - protected $casts = [ - 'meta' => 'array', - ]; + /** + * @return array + */ + protected function casts(): array + { + return [ + 'meta' => 'array', + ]; + } // ... } diff --git a/packages/forms/docs/18-toggle-buttons.md b/packages/forms/docs/18-toggle-buttons.md index 978c127c6d..c1718e1f14 100644 --- a/packages/forms/docs/18-toggle-buttons.md +++ b/packages/forms/docs/18-toggle-buttons.md @@ -196,9 +196,15 @@ use Illuminate\Database\Eloquent\Model; class App extends Model { - protected $casts = [ - 'technologies' => 'array', - ]; + /** + * @return array + */ + protected function casts(): array + { + return [ + 'technologies' => 'array', + ]; + } // ... } diff --git a/packages/forms/docs/19-slider.md b/packages/forms/docs/19-slider.md index fd37d5973d..6af02cbcce 100644 --- a/packages/forms/docs/19-slider.md +++ b/packages/forms/docs/19-slider.md @@ -139,9 +139,15 @@ use Illuminate\Database\Eloquent\Model; class Post extends Model { - protected $casts = [ - 'slider' => 'array', - ]; + /** + * @return array + */ + protected function casts(): array + { + return [ + 'slider' => 'array', + ]; + } // ... } diff --git a/packages/infolists/docs/07-key-value-entry.md b/packages/infolists/docs/07-key-value-entry.md index f4c29accc3..2d8f987266 100644 --- a/packages/infolists/docs/07-key-value-entry.md +++ b/packages/infolists/docs/07-key-value-entry.md @@ -33,9 +33,15 @@ use Illuminate\Database\Eloquent\Model; class Post extends Model { - protected $casts = [ - 'meta' => 'array', - ]; + /** + * @return array + */ + protected function casts(): array + { + return [ + 'meta' => 'array', + ]; + } // ... } diff --git a/tests/src/Fixtures/Models/Post.php b/tests/src/Fixtures/Models/Post.php index d45c6d92f4..8e1a1a4c02 100644 --- a/tests/src/Fixtures/Models/Post.php +++ b/tests/src/Fixtures/Models/Post.php @@ -14,13 +14,19 @@ class Post extends Model use HasFactory; use SoftDeletes; - protected $casts = [ - 'string_backed_enum' => StringBackedEnum::class, - 'is_published' => 'boolean', - 'tags' => 'array', - 'json' => 'array', - 'json_array_of_objects' => 'array', - ]; + /** + * @return array + */ + protected function casts(): array + { + return [ + 'string_backed_enum' => StringBackedEnum::class, + 'is_published' => 'boolean', + 'tags' => 'array', + 'json' => 'array', + 'json_array_of_objects' => 'array', + ]; + } protected $guarded = []; diff --git a/tests/src/Fixtures/Models/User.php b/tests/src/Fixtures/Models/User.php index 60a6a7c1d2..89aa6a4837 100644 --- a/tests/src/Fixtures/Models/User.php +++ b/tests/src/Fixtures/Models/User.php @@ -33,15 +33,18 @@ class User extends Authenticatable implements FilamentUser, HasAppAuthentication ]; /** - * @var array + * @return array */ - protected $casts = [ - 'json' => 'array', - 'email_verified_at' => 'datetime', - 'app_authentication_secret' => 'encrypted', - 'app_authentication_recovery_codes' => 'encrypted:array', - 'has_email_authentication' => 'boolean', - ]; + protected function casts(): array + { + return [ + 'json' => 'array', + 'email_verified_at' => 'datetime', + 'app_authentication_secret' => 'encrypted', + 'app_authentication_recovery_codes' => 'encrypted:array', + 'has_email_authentication' => 'boolean', + ]; + } public function canAccessPanel(Panel $panel): bool {