dima9595
@dima9595
Junior PHP

Почему не работает hasOne?

Есть 2 таблицы:
1. users
id_users
login_users
...

2. money
id
username
balance

Модель Users:
namespace App\Models\Users;
use Illuminate\Database\Eloquent\Model;

class Users extends Model{
    protected $table = 'users';
    protected $primaryKey = 'id_users';

    protected $guarded = ['id_users'];
    protected $hidden = ['password'];

    public function getMoney(){
        return $this->hasOne('App\Models\Users\Money', 'username', 'login_users');
    }
}


Money:
namespace App\Models\Users;
use Illuminate\Database\Eloquent\Model;

class Money extends Model{
    protected $table = 'money';
}


Хочу получить баланс пользователя через hasOne, и в виде вывожу: "$user->getMoney()->balance".
$user - это данные пользователя, полученного через вид (в контроллере).
PS: Пробовал через стандартный метод User::find(1)... ни чего не менялось.

Вроде должно работать, а почему-то не фига не получает из БД.
Что не так? Заранее спасибо)
  • Вопрос задан
  • 296 просмотров
Решения вопроса 1
Denormalization
@Denormalization
Потому что связь нужно забирать так:
$user->getMoney->balance

При использовании $user->getMoney() мы получаем Builder, а не результат.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы