внедрение зависимости от модели не работает

Вы можете найти эту DLL в Blend SDK.

Ниже приведена ссылка на нее:

http://www.microsoft.com/en-us/download /details.aspx?id=10801

1
задан b1ix.net 22 February 2019 в 11:56
поделиться

2 ответа

В качестве другой альтернативы, если вам действительно нужно использовать инжекцию зависимости в модели, не касаясь метода __construct

Вы можете использовать черту , которая будет Разрешите это для вашей модели

namespace App\Traits;

use Illuminate\Http\Request;
trait InjectRequest
{
    public static $request;

    protected static function bootInjectRequest()
    {
        self::$request = app(Request::class);
    }

    public function request(): Request
    {
        return self::$request;
    }
}

На вашей модели:

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Auth;
use App\Traits\InjectRequest;

class Conference_list extends Model
{
    use InjectRequest;
    public $timestamps = false;

}

Назовите вашу модель:

$request = (new App\Models\Conference_list())->request(); 

Узнайте больше о загрузочных чертах: https://www.archybold.com/blog/post/booting-eloquent-model-traits

0
ответ дан cbaconnier 22 February 2019 в 11:56
поделиться

В красноречивых моделях уже есть конструктор. Я бы не рекомендовал перезаписывать это для добавления пользовательских функций.

В зависимости от того, что вы пытаетесь сделать, вероятно, есть лучший способ сделать это. Это может быть так же просто, как наличие метода в модели для установки запроса. Это может быть что-то вроде:

public function setRequest()
{
    $this->request = request();

    return $this;
}

Это позволит вам либо установить запрос вручную, передав ему экземпляр, либо Laravel автоматически разрешит его из своего контейнера.

В вашем контроллере или где-то еще вы можете сделать что-то вроде:

$model = (new App\Models\Conference_list())->setRequest();
0
ответ дан George Hanson 22 February 2019 в 11:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: