Laravel -用户个人资料页面

avkwfej4  于 2023-03-13  发布在  其他
关注(0)|答案(3)|浏览(152)

在我的应用程序中,我有一个用户表和一个个人资料表。当用户进入他们的 Jmeter 板时,他们应该可以点击一个链接来查看他们的个人资料页面。
<a href="{{ route('profiles.show',$profiles->id)}}">link to your profile page</a>
但是,我收到错误:未定义路由[profiles.show]。
我是一个新手,不清楚如何链接注册用户与他/她的个人资料页。所有用户都应该有一个个人资料页注册。
我希望得到一些指导!以下是我目前所掌握的信息:

个人资料页面链接

<a href="{{ route('profiles.show',$profiles->id)}}">link to your profile page</a>

配置文件控制器.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'));
    }
}

配置文件.php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Profile extends Model
{
    public function user()
    {
        return $this->belongsTo('User');
    }
}

路由/web.php

Route::get('pages/profiles', 'ProfilesController@show');

配置文件.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>

解决方案

我发现了一个简单的解决方案,我想把它发布在这里,以帮助其他可能在创建用户配置文件页面方面遇到困难的人。下面假设您的数据库中已经有一个用户表,现在您想创建一个配置文件表,并将用户ID连接到他们的配置文件页面。
这是帮助我的the video

创建表格

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');
    }
}

路由/web.php

Route::get('dashboard/profile', 'ProfilesController@show');

配置文件.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');
}

配置文件.blade.php

创建任何你想要的设计。如果你想要拉入用户名,包括{{ Auth::user()->name }}

wfveoks0

wfveoks01#

试试这个

Route::get('pages/profiles/{id}', 'ProfilesController@show')->name('profiles.show');

因为在link中你使用了一个名称路由,但是在web.php中没有名为profiles.show的名称路由。
所以是show error,在路由中你需要传递ID。

eivnm1vs

eivnm1vs2#

刀片文件:

<a href="{{ route('profiles.show',$profiles->id)}}">link to your profile page</a>

更改路线样式,如下所示:

Route::get('pages/profiles/{id}', 'ProfilesController@show')->name('profiles.show');

在剖面模型

public function user()
{
    return $this->belongsTo(User::class);
}

在Profiles.blade.php中

<body>
  <h1>{{ $profile->id }}</h1>

   <p>{{ $profile->about_me }}</p>
</body>

您通过“profile”参数传递了用户信息。因此您必须在blade文件中写入此名称。

注意如果您没有为该路线名称指定任何名称,路线功能将不起作用。您必须使用URL。

pdkcd3nj

pdkcd3nj3#

您的路由是错误的,请查看命名的路由。如果您不使用Route::resource(),您必须手动命名您的路由,并指定何时需要参数(在本例中为配置文件ID)。

Route::get('pages/profiles/{id}', 'ProfilesController@show')->name('profiles.show');
<a href="{{ route('profiles.show', $profile)}}">link to your profile page</a>

在这种情况下,路由模型绑定可能是可行的方法。
一个二个一个一个

相关问题