koel 代码,关于 controller 层 user () 方法调用的问题
问题:$request->user()方法调用
代码如下:
//controller:
public function store(PlaylistStoreRequest $request)
{
/** @var Playlist $playlist */
$playlist = $request->user()->playlists()->create([
'name' => $request->name,
'rules' => $request->rules,
]);
}
//PlaylistStoreRequest文件:
class PlaylistStoreRequest extends Request
{
public function rules(): array
{
return [
'name' => 'required',
'songs' => 'array',
]; }}
//Request文件:
class Request extends AbstractRequest
{
}
//AbstractRequest文件:
abstract class AbstractRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [];
}}
//model层方法:
class Playlist extends Model
{
use CanFilterByUser;
protected $hidden = ['user_id', 'created_at', 'updated_at'];
protected $guarded = ['id'];
protected $casts = [
'user_id' => 'int',
'rules' => 'array',
]; protected $appends = ['is_smart'];
public function songs(): BelongsToMany
{ return $this->belongsToMany(Song::class);
}
public function user(): BelongsTo
{ return $this->belongsTo(User::class);
}
public function getIsSmartAttribute(): bool
{
return (bool) $this->rules;
}}