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.