За последние 24 часа нас посетили 17873 программиста и 1566 роботов. Сейчас ищут 1328 программистов ...

Ручная аутентификация

Тема в разделе "Laravel", создана пользователем Dimon2x, 18 май 2018.

  1. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.210
    Симпатии:
    185
    Делаю всё по инструкции, удалил внутренности стандартного класса LoginController и прописал

    PHP:
    1. <?php
    2.  
    3. namespace App\Http\Controllers\Auth;
    4.  
    5. use App\Http\Controllers\Controller;
    6. use Illuminate\Foundation\Auth\AuthenticatesUsers;
    7.  
    8. use Illuminate\Support\Facades\Auth;
    9.  
    10.  
    11. class LoginController extends Controller
    12. {
    13.    
    14.   public function authenticate()
    15.   {
    16.     if (Auth::attempt(['email' => $email, 'password' => $password])) {
    17.       // Аутентификация успешна
    18.       return redirect()->intended('dashboard');
    19.     }
    20.  
    21.   }
    22. }
    И теперь ругается

    (1/1) BadMethodCallException
    Method [showLoginForm] does not exist.
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    Надо либо трейт использовать, как по умолчанию сделано, либо буквально скопировать его методы. Нельзя вот так вот сделать наполовину.
     
  3. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.210
    Симпатии:
    185
    @artoodetoo какой трейт? Зачем делать инструкции, которые не работают?
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    Работают, если быть внимательным. И не все примеры кода можно считать руководством к действию. Иногда это схематичное объяснение как всё это работает внутри. Короче, контекст нельзя игнорировать.
    Инструкция отличается конкретностью: выполните это, затем это. Ты уверен, что получил такую инструкцию?
    --- Добавлено ---
    Насколько я помню, инструкция рассказывает как сгенерировать заготовку контроллера. В ней трейт будет прописан автоматически.
     
  5. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    PHP:
    1.     use AuthenticatesUsers;
    2.     public function authenticate(Request $request)
    3.     {
    4.         $credentials = $request->only('email', 'password');
    5.  
    6.         if (Auth::attempt($credentials)) {
    7.             // Authentication passed...
    8.             return redirect()->intended('dashboard');
    9.         }
    10.     }
     
    #5 nospiou, 18 май 2018
    Последнее редактирование: 18 май 2018
    Dimon2x нравится это.