Функции контроллера запускаются дважды с вошедшим в систему пользователем? - PullRequest
1 голос
/ 08 октября 2019

У меня есть простой кусок кода, который отслеживает каждый раз, когда вызывается определенный маршрут, но я замечаю, что он как-то добавляет 2 посещения, когда он запускается, а не только 1. Это только тогда, когда посетитель вошел в системуПользователь, как гость он работает нормально. Почему?

Модель страницы, содержащая код для подсчета запросов маршрута.

class Page extends Model
{
    /**
     * Find the correct page for the given route name or create a placeholder and increase visit count
     * 
     * @param string $name
     * @return App\Models\Page
     */
    public static function findOrNewAndCount($name)
    {
        $page = self::where('name', $name)->first();

        // If no Page can be found, create a new one for the given route.
        if ($page == null) {
            $page = new Page;
            $page->name = $name;
            $page->section = 'missing';
            $page->save();
        }

        // Increase visit_count by 1
        $page->visit_count = $page->visit_count + 1;
        $page->last_visit_at = now();
        $page->save();

        return $page;
    }
}

Использование функции в контроллере

class AboutUsController extends Controller
{

     /** Show business details page.
     *
     * @return \Illuminate\Http\Response
     */
    public function details()
    {
        $page = Page::findOrNewAndCount('about_us.details');

        return view('about_us/details', compact('page'));
    }
}

Вызываемый маршрут

Route::get('about_us/details', 'AboutUsController@details')->name('about_us.details');

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

Существует некоторая роль пользователя и проверка прав доступа, выполняемая дляпанель навигации, но это не должно приводить к тому, что этот конкретный маршрут будет вызываться дважды, верно?

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