मैं चाहता हूं कि मेरे प्रकाशन संबंध 'आदेश' कॉलम द्वारा क्रमबद्ध हों।
मैं अब तक यही लेकर आया हूं:

class Book extends Model
{
     public $hasMany = [
         'publications' => ['Codalia\Bookend\Models\Publication']
     ];
  ...
}

class Publication extends Model
{
     public $belongsTo = [
         'book' => ['Codalia\Bookend\Models\Book']
     ];
  ...
}

$book = Book::with(['publications' => function ($q){
    $q->orderBy('ordering');
}])->where('id', $id)->get();

$book->publications;

लेकिन मुझे एक त्रुटि मिलती है:

संपत्ति [प्रकाशन] इस संग्रह उदाहरण पर मौजूद नहीं है।

मैं एक संग्रह को पुनः प्राप्त क्यों कर सकता हूँ, न कि एक पुस्तक वस्तु को ?

0
Duddy67 8 जुलाई 2020, 10:08

1 उत्तर

सबसे बढ़िया उत्तर

->get(); अनेकों का संग्रह लौटाने वाला है। आप जो खोज रहे हैं वह है ->first();

$book = Book::with(['publications' => function ($q){
    $q->orderBy('ordering');
}])->where('id', $id)->first(); // here

$book->publications;
1
Digvijay 8 जुलाई 2020, 10:20