• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

325
Views
RelationShip BelongsToMany Laravel - Solo regresa con TimeStamps

Necesito tu ayuda.

Tengo los siguientes modelos:

 class Store extends Model { public function categories() { return $this->belongsToMany(Category::class,'category_by_store','store_id','category_id')->withPivot('refIdInMyStore'); } } class Category extends Model{ public function store() { return $this->belongsToMany(Store::class, 'category_by_store','category_id','store_id'); }}

Entonces, si quiero recuperar categorías de una tienda, escribo:

 $store = Store::find(1); $categories = $store->categories()

Pero la respuesta es: {"withTimestamps":false}

¿Cuál es mi error?

¡Gracias!

over 3 years ago · Santiago Trujillo
1 answers
Answer question

0

Es porque lo está llamando como una función $store->categories() . Lo cual sería similar a llamar a Categories::where('store_id', $id) sin llamar a ->get() para ejecutar la consulta.

Debería llamarlo como un atributo $categories = $store->categories en su lugar.

Hay muchos que están en contra de no ser explícitos sobre el hecho de que estás ejecutando una nueva consulta porque la relación parece un atributo.

Descubrí que es mejor para la claridad del código y el rendimiento probable usar la carga ansiosa de esta manera:

 $store = Store::with('categories')->find(1);

Creo que esto indica claramente que utilizará la relación de categorías.

over 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error