Depois de ajudar pelo chat, o problema era que havia uma coluna existente chamada
group , e o método de relacionamento também foi chamado de group , portanto, o valor da coluna da tabela estava tendo precedência sobre o método de relacionamento. Renomeando o método de relacionamento ou o
group coluna para algo como group_id são soluções adequadas (sugiro o group_id rota). Resposta original:
Você recupera o grupo por meio de uma propriedade mágica, não diretamente do método.
echo User::find(1)->group->name;
Se você recuperar o
group() método, ele retornará o objeto de relacionamento, não realizará nenhuma consulta e buscará o objeto de relacionamento. Além disso, o Eloquent fará suposições sobre quais são os nomes das colunas da chave estrangeira.
Group traduziria automaticamente para um group_id coluna. Se você tiver uma coluna existente chamada group , você deve especificar isso explicitamente em seu relacionamento:public function group ()
{
return $this->belongsTo('Group', 'group');
}
Se você receber um erro "Tentando obter propriedade de não objeto" para a propriedade
group , seu relacionamento não está retornando nenhum resultado ($user->group será NULL ). Nesse ponto, você deve certificar-se de que seu relacionamento está configurado corretamente (por exemplo, usando o belongsTo, hasOne, hasMany etc.) correto e garantir que você realmente tenha uma entrada relacionada em seu banco de dados.