Контроллеры Laravel делят свойства между запросами? - PullRequest
1 голос
/ 04 марта 2020

Контроллеры Laravel совместно используют свойства между различными HTTP-запросами? Например, если у меня есть следующий код

<?php

namespace App\Http\Controllers;

class UserController extends Controller
{
    private $user;

    public function __construct()
    {
        $this->user = Auth::user();
    }

    public function show_user_name() {

        return view('user.profile', ['user_name' => $this->user->name]);

    }
}

И

Route::get('/user', 'UserController@show_user_name');

Не будет ли беспорядком, если несколько пользователей одновременно вызовут /users и $user будут одинаковыми на все запросы?

1 Ответ

0 голосов
/ 04 марта 2020

Ваш код неверен. Вы должны использовать $this-> для установки свойства класса

<?php

namespace App\Http\Controllers;

class UserController extends Controller
{
    private $user;

    public function __construct()
    {
        $this->user = Auth::user();
    }

    ...
}

И по поводу вашего вопроса - ни один контроллер не разделяет свойства друг с другом. (особенно если собственность частная)

Но вы можете использовать Auth::user() где угодно. Он будет одинаковым везде, но будет отличаться для каждого запроса, поскольку он зависит от пользовательских файлов cookie, токена и сеанса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...