| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- <?php
- namespace App\Models;
- use Illuminate\Database\Eloquent\Model;
- class Textbook extends Model
- {
- protected $table = 'textbooks';
- protected $fillable = [
- 'id',
- 'series_id',
- 'stage',
- 'schooling_system',
- 'grade',
- 'semester',
- 'naming_scheme',
- 'track',
- 'module_type',
- 'volume_no',
- 'legacy_code',
- 'curriculum_standard_year',
- 'curriculum_revision_year',
- 'approval_authority',
- 'approval_year',
- 'edition_label',
- 'official_title',
- 'display_title',
- 'aliases',
- 'isbn',
- 'cover_path',
- 'status',
- 'sort_order',
- 'meta',
- 'series',
- 'created_at',
- 'updated_at',
- ];
- protected $casts = [
- 'aliases' => 'array',
- 'meta' => 'array',
- 'grade' => 'integer',
- 'semester' => 'integer',
- 'volume_no' => 'integer',
- 'curriculum_standard_year' => 'integer',
- 'curriculum_revision_year' => 'integer',
- 'approval_year' => 'integer',
- 'sort_order' => 'integer',
- ];
- public function __construct(array $attributes = [])
- {
- parent::__construct($attributes);
- // 从 API 数据初始化时设置属性
- foreach ($attributes as $key => $value) {
- $this->setAttribute($key, $value);
- }
- }
- public function series()
- {
- return $this->belongsTo(TextbookSeries::class);
- }
- public function catalogs()
- {
- return $this->hasMany(TextbookCatalog::class);
- }
- /**
- * 获取系列信息(兼容 API 返回的嵌套对象)
- */
- public function getSeriesAttribute($value)
- {
- if (is_array($value)) {
- return (object) $value;
- }
- return $value;
- }
- }
|