Я создаю приложение с ценами. Я хотел бы назначить особую цену некоторым конкретным пользователям.
В модели, которая имеет цену, я пытаюсь использовать аксессор, чтобы «подправить» цену следующим образом:
public function getPriceAttribute($price)
{
dd(auth()->user()); //this returns null
if (auth()->check()) {
$user = auth()->user();
return $user->aDefinedRelationship()->first()->price;
}
return $price;
}
Однако auth()->user()
всегда возвращает null
.
Я использую традиционную аутентификацию Laravel, никакой внешней библиотеки.
Пожалуйста, есть что-то, что я не правильно делаю?
Любая помощь будет оценена.
Дополнительная информация:
auth.php
return [
'defaults' => [
'guard' => 'web',
'passwords' => 'users',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Api\V1\Models\User::class,
],
],
];
ThePriceModel.php
namespace App\Api\V1\Models;
use Illuminate\Database\Eloquent\Model;
class ThePriceModel extends Model
{
protected $table = 'prices';
protected $fillable = ['code', 'price'];
public function getPriceAttribute($price)
{
dd(auth()->user()); //this returns null
if (auth()->check()) {
$user = auth()->user();
return $user->aDefinedRelationship()->first()->price;
}
return $price;
}
}