В моем приложении есть таблица пользователей и таблица профилей.Когда пользователь заходит на свою панель мониторинга, он должен иметь возможность щелкнуть ссылку, чтобы просмотреть страницу своего профиля.Вот ссылка:
<a href="{{ route('profiles.show',$profiles->id)}}">link to your profile page</a>
Однако я получаю сообщение об ошибке: Маршрут [profiles.show] не определен.
I 'Я новичок и не совсем понимаю, как связать зарегистрированного пользователя со страницей его / ее профиля.У всех пользователей должна быть страница профиля при регистрации.
Буду признателен за руководство!Вот что у меня есть:
Ссылка на страницу профиля
<a href="{{ route('profiles.show',$profiles->id)}}">link to your profile page</a>
ProfilesController.php
namespace App\Http\Controllers;
use App\Profile;
use Illuminate\Http\Request;
class ProfilesController extends Controller
{
public function show($id)
{
$profile = Profile::find($id);
return view('profiles.show', compact('profile'));
}
}
Profile.php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Profile extends Model
{
public function user()
{
return $this->belongsTo('User');
}
}
routs / web.php
Route::get('pages/profiles', 'ProfilesController@show');
profiles.blade.php
Пока это просто очень простая страница.
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<h1>{{ $user->user_id }}</h1>
<p>{{ $user->about_me }}</p>
</body>
</html>
Решение
Я нашел простое решение, и я хотел опубликовать его здесь, чтобы помочь другим, кто может бороться с созданием страницы профиля пользователя.Ниже предполагается, что у вас уже есть таблица пользователей в вашей базе данных, и теперь вы хотите создать таблицу профилей и подключить идентификатор пользователя к странице своего профиля.Добавление профилей пользователей Laravel
Это видео , которое мне помогает.
Создание таблицы
php artisan make:migration create_profiles_table
Это создаетфайл миграции:
2019_09_22_213316_create_profiles_table
Открыть файл миграции и добавить дополнительные столбцы, которые вам нужны:
$table->integer('user_id')->unsigned()->nullable();
$table->string('about_me')->nullable();
Перенести их в базу данных
php artisan migrate
Теперь, когда наша база данных отсортирована, нам нужно создать контроллер для управления работой нашего php.
ProfilesController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ProfilesController extends Controller
{
public function show($user_id)
{
$user = User::find(1);
$user_profile = Profile::info($user_id)->first();
return view('profiles.show', compact('profile', 'user'));
}
public function profile()
{
return $this->hasOne('Profile');
}
}
routs / web.php
Route::get('dashboard/profile', 'ProfilesController@show');
Profile.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Profile extends Model
{
public function user()
{
return $this->belongsTo('User');
}
}
Добавить это в User.php
public function profile()
{
return $this->hasOne('Profile');
}
profile.blade.php
Создайте любой дизайн, который вы хотите.Если вы хотите ввести имя пользователя, включите {{ Auth::user()->name }}