データベースから最新の注文状況名を表示したいのですが、データの表示に問題があります。これが私のコードです:
注文コントローラー
class OrderController extends Controller
{
public function index()
{
$orders = Order::with('shippingAddress', 'billingAddress', 'carrier', 'payment', 'status')->limit(300)->orderBy('id', 'DESC')->get();
}
}
オーダーモデル(カット済み)
public function status()
{
return $this->hasMany('App\Ss\Models\OrderHistory','id_order', 'id')
->orderBy('date_add', 'DESC')
->limit(1)
->with('statusLanguage');
}
OrderHistory モデル
class OrderHistory extends Model
{
protected $table="order_history";
public $timestamps = false;
public function statusLanguage(){
return $this->hasOne('App\Ss\Models\StatusLanguage', 'id_status', 'id_status');
}
}
私が表示しようとした方法:
{{ $order->status()->statusLanguage()->name ?? 'No status' }}
{{ $order->status()->statusLanguage->name ?? 'No status' }}
{{ $order->status->statusLanguage->name ?? 'No status' }}
毎回結果が「プロパティ [statusLanguage] はこのコレクション インスタンスに存在しません」のようなエラーでした。または類似。
dd($order->status)を実行しようとすると、必要なデータとの関係が返されます:
では、どこが間違っているのでしょうか?