A continuación se muestran todos los modelos, migraciones y controlador.
Modelo de Donación
class Donation extends Model { protected $guarded =[]; public function users(){ return $this->hasMany(User::class); } public function items(){ return $this->belongsTo(DonationItems::class); } }Modelo de artículos de donación:
class DonationItems extends Model { protected $guarded=[]; public function donation(){ return $this->hasMany(Donaition::class); } }Migración de artículos de donación:
public function up() { Schema::create('donation_items', function (Blueprint $table) { $table->id(); $table->string('category'); $table->timestamps(); }); }Migración de Donación:
public function up() { Schema::create('donations', function (Blueprint $table) { $table->id(); $table->string('item'); $table->unsignedInteger('user_id'); $table->unsignedInteger('donation_item_id'); $table->timestamps(); }); }En mi controlador, quiero acceder a los elementos de la siguiente manera:
$don = Donation::all(); $don->items;Pero soy incapaz de lograr esto.
No funciona porque laravel sigue una regla para las relaciones:
Recuerde, Eloquent determinará automáticamente la columna de clave externa adecuada en el modelo de comentario. Por convención, Eloquent tomará el nombre de "caso de serpiente" del modelo propietario y le agregará el sufijo _id. Entonces, para este ejemplo, Eloquent asumirá que la clave externa en el modelo de comentario es post_id.
Así que puedes probar proporcionando una identificación local y extranjera.
Entonces se vería algo como esto
Modelo de donación class La donación extiende el modelo { protected $guarded =[];
public function users(){ return $this->hasMany(User::class); } public function items(){ return $this->belongsTo(DonationItems::class, 'donation_item_id', 'id'); } }Modelo de artículos de donación:
class DonationItems extends Model { protected $guarded=[]; public function donation(){ return $this->hasMany(DonationItems::class, 'id', 'donation_item_id'); } }Estoy escribiendo desde mi cabeza, es posible que deba intercambiar identificaciones locales y extranjeras