Создание таблиц профилей пользователей, доступных в Laravel 5.8 - PullRequest
0 голосов
/ 19 марта 2019

У меня возникли проблемы с приложением при попытке создания профилей пользователей. Вот вопрос:

Я пытаюсь создать представление с именем userprofile.blade.php, которое будет выводить любой профиль пользователя (на основе идентификатора или имени пользователя ... сейчас это не имеет значения). На каждой странице профиля будут отображаться имя, описание, местоположение, профиль и сообщения пользователя. Я использовал команду Make: auth Laravel для создания необходимой аутентификации, настроил формы аутентификации, а затем перенес все столбцы, которые мне нужны, в моей базе данных.

Мои методы создания и обновления работают очень хорошо (регистрация новых пользователей и обновление их информации). Вся информация правильно сохраняется в базе данных. Однако я могу получить к нему доступ только в своих представлениях с помощью {{Auth :: user () ->}}. Всякий раз, когда я пытаюсь использовать модель в моем контроллере для доступа к нужным мне данным, это не работает. Мне кажется, что мне нужно отделить стандартную модель «Пользователь» Laravel от пользовательской модели, которую я бы назвал «Аккаунт» или что-то в этом роде.

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

use App\User;
use App\Recipe;

class UserController extends Controller
{
  /**
 * Create a new controller instance.
 *
 * @return void
 */
public function __construct()
{
    $this->middleware('auth', ['except' => [
        'index', 'show'
    ]]);
}

public function index(){
    $user = User::find($id);
    return view('user.userprofile')->with('user');
}

Я включил только метод индекса из моего UserController, чтобы упростить его. Он ломается и сообщает мне, что 'id' в $ user = User :: find ($ id); является неопределенной переменной Это говорит мне, что он не обращается к моей таблице базы данных.

Мой вопрос заключается в том, должен ли я создать новую свежую модель, не смешанную с аутентификацией, для обработки всей информации профиля пользователя? Если да, то как мне получить доступ к моей текущей таблице базы данных «пользователи» из этой новой модели?

Пожалуйста, дайте мне знать, если мне нужно кое-что прояснить для вас, ребята. Я не очень опытный, и я понимаю, если мой вопрос нечеткий. Большое спасибо за ваше время!! Я действительно ценю любую помощь, которую я могу получить!

1 Ответ

0 голосов
/ 19 марта 2019

Здравствуйте и добро пожаловать в разработку с Laravel!

Вы на правильном пути - вам нужно определить, какой профиль пользователя вы просматриваете, извлечь его из базы данных и передать в представление Blade. Вам не нужна новая модель или что-нибудь еще! Просто нужно завершить то, что вы начали.

Вы должны начать с определения параметра маршрута в вашем маршруте, который будет захватывать нужные динамические данные из URL. Давайте пока воспользуемся числовым идентификатором. Если вы хотите, чтобы URL выглядел как example.com/user/439, ваш маршрут должен выглядеть примерно так: Route::get('user/{id}', 'UserController@index');.

Как только вы это получите, параметр id будет передан методу вашего контроллера. Определите его как параметр метода, и он будет пригоден для использования: public function index($id) { ... }

Я думаю, вы можете взять это оттуда. :)

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