laravel - Le modèle associé éloquent ne peut pas obtenir les données de la table associée
我想大声告诉你
我想大声告诉你 2017-05-16 16:47:12
0
3
429

Adresse de mise à jour du code

table principale de la table des propriétés de l'entreprise,
table esclave de la table communautaire propertyMain

Une propriété correspond à plusieurs communautés, et une communauté correspond à une propriété

Scénario d'application, la liste des ajouts, suppressions et modifications de la communauté doit afficher les informations de propriété correspondantes de la communauté

Je ne parviens pas à le sortir en utilisant ! ! ! !

namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class PropertyMain extends Model {
    protected $table      = 'property_main';
    public    $primaryKey = 'mId';
    protected $fillable   = [
        'mId',
        'phone',
        'companyId',
    ];

    public function company() {
        //参数1目标模型 参数2当前模型与company表关联的外键ID 参数3companny主键ID
        return $this->belongsTo('App\Models\Company','companyId','mId');
    }
}
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Company extends Model {
    protected $table      = 'company';
    public    $primaryKey = 'mId';
    protected $fillable   = [
        'mId',
        'name',
        'phone',
        'introduce'
    ];
    
    public function propertyMain() {
        return $this->hasMany('App\Models\Property','mId','mId');
    }
}
$propertyMains = PropertyMain::with('company')->get();
foreach ($propertyMains as $b){
    dd($b->company); // 返回空
}
$propertyMains = PropertyMain::where([])->orderBy('created_at', 'asc')->paginate(12);
foreach ($propertyMains as $b){
    dd($b->company); // 可以取到数据
}
我想大声告诉你
我想大声告诉你

répondre à tous(3)
阿神

Hé, le deuxième paramètre de appartiennentToMany est la table intermédiaire, elle semble manquer

曾经蜡笔没有小新

La clé étrangère est mal écrite mId -> companyId
Dans une relation un-à-plusieurs, PropertyMain appartient à Company La clé primaire de Company est stockée dans PropertyMain en tant que clé étrangère, donc la clé étrangère est toujours companyId

.
public function propertyMain() {
    return $this->hasMany('App\Models\PropertyMain','companyId','mId');
}
漂亮男人

return $this->hasMany('AppModelsProperty','companyId','mId');
Le deuxième paramètre est la clé étrangère du modèle actuel dans le modèle associé

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal