Доступ к $ app или $ request в Eloquent с использованием Slim Framework - PullRequest
0 голосов
/ 12 марта 2020

Я создаю приложение Slim Framework 4 Api с Eloquent.

public / index. php

$capsule = new \Illuminate\Database\Capsule\Manager;
$capsule->addConnection($dbconfig);
$capsule->setAsGlobal();
$capsule->bootEloquent();

$app->add(new RequestUser()); // for calling middleware that adds user

Middlware

 class RequestUser
  {

public function __invoke(Request $request, RequestHandler $handler): Response
{
     ....................
    $user = User::where('emailid', $email)->first();
    $request = $request->withAttribute('user', $user);
    $request = $request->withAttribute('token', (string) $exploded_authorization[1]);
    return $handler->handle($request);
  }
  }

Контроллер

use Psr\Http\Message\ServerRequestInterface as Request;

public function create(Request $request, Response $response, $args)
    {
$user = $request->getAttribute('user'); // gives me the request user information

    }

Модель

<?php

namespace App\Models\TableModel;

use Illuminate\Database\Eloquent\Model;
use DateTime;
use Psr\Http\Message\ServerRequestInterface as Request;


class Details extends Model
{
    protected $table = 'my_table';

    protected $primaryKey = 'Id';

    public $timestamps = false;

    protected $fillable = [];

    protected $hidden = [];

    protected $casts = [

    ];

    protected $appends = ['can_edit', 'can_delete'];


    public function getCanEditAttribute(){
        $now = date('Y-m-d H:i:s');
        return $this->Start_Date >= $now;
    }

    public function getCanDeleteAttribute(){
        //request contains the user information from the middleware? How to access here
        return 
    }


}

Я хочу получить доступ к запросу $ в моя модель, чтобы я мог получить информацию о пользователе, который пытается получить доступ к CanDelete.

1 Ответ

0 голосов
/ 08 мая 2020

У вас неправильный вид промежуточного программного обеспечения, оно должно быть промежуточным программным обеспечением для маршрутизации и привязано непосредственно к маршруту или группе маршрутов, а не $ app-> add

...