[英]Typecast eloquent relation laravel
我有兩個模型Tour.php
和Itinerary.php
一對多關系:
旅游.php
public function itinerary()
{
return $this->hasMany('App\Itinerary', 'tour_id')->orderBy('day', 'asc');
}
行程表.php
public function tour()
{
return $this->belongsTo('App\Tour', 'tour_id');
}
itineraries
表由以下列組成:
身份證 |旅游身份證 | 日 | 細節
day
和detail
列是字符串類型。
我想按照天數的升序打印旅行的行程。
如何將字符串更改為整數?
我在視圖中使用 foreach 循環打印輸出:
@foreach($tour->itineraries as $item)
{{$item->day}}
{{$item->detail}}
@endforeach
我在模型中嘗試了 cast 方法:
protected $casts = [
'day' => 'integer',
];
和配件
public function castDayToInt($value)
{
return (int)$value;
}
但沒有得到預期的結果。
上述代碼的當前輸出:
預期輸出
最好的解決方案是在 DB 中更改您的日期類型,
如果你仍然需要 varchar 類型,你可以這樣做:
public function itineraries()
{
return $this->hasMany('App\Itinerary', 'tour_id')->orderByRaw('CONVERT(day, UNSIGNED) ASC');
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.