Laravel 5.8传递参数以查看返回的未定义

时间:2019-08-26 06:32:18

标签: php routes laravel-5.8

我想将用户名传递给浏览器中的url,如“ / profile / {此处登录的用户名}”中所示。但是为了测试,我尝试首先传递id。 这是什么问题,不是当我按实际链接时。当我尝试仅访问欢迎页面时,会发生问题。

我已经在视图中调用了路由,并向其传递了正确的参数'user',但它仍然给我带来了不确定的变量错误。

这是路线

Route::get('/', function () {
    return view('welcome');
});

Auth::routes();

Route::get('/profile/{user}', 'ProfilesController@index')->name('profile.show');

ProfilesController:

<?php

namespace App\Http\Controllers;

use App\User;
use Illuminate\Http\Request;

class ProfilesController extends Controller
{
    public function index($user)
    {
        $user = User::find($user);
        return view('home', [
            'user' => $user,
        ]);
    }
}

欢迎刀片

<div class="flex-center position-ref full-height">
            @if (Route::has('login'))
                <div class="top-right links">
                    @auth
                        <a href="{{ route('profile.show', $user) }}">Home</a>
                    @else
                        <a href="{{ route('login') }}">Login</a>

                        @if (Route::has('register'))
                            <a href="{{ route('register') }}">Register</a>
                        @endif
                    @endauth
                </div>
            @endif

            <div class="content">
                <div class="title m-b-md">
                    gramClone
                </div>
                <p class="content">
                    where IG pics get to be shittier.
                </p>
            </div>
        </div>

按下主页链接后调用的主页刀片:

@section('content')
<div class="container">
    <div class="row">
        <div class="col-4 p-5">
            <img src="/png/logo.png" alt="logo" style="height: 6rem; width: 6rem;" class="float-right rounded-circle">
        </div>
        <div class="col-8 pt-5">
            <div><h1>{{$user->username}}</h1></div>
            <div class="d-flex">
                <div class="pr-5"><strong>number here</strong> posts</div>
                <div class="pr-5"><strong>number here</strong> followers</div>
                <div class="pr-5"><strong>number here</strong> following</div>
            </div>
            <div class="pt-4 font-weight-bold">Bio Summary Here</div>
            <div>Bio Here</div>
            <div><a href="#">Link Here</a></div>
        </div>
    </div>

    <div class="row pt-5">
        <div class="col-4"><img src="https://images.unsplash.com/photo-1566624790190-511a09f6ddbd?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=634&q=80" alt="" class="w-100"></div>
        <div class="col-4"><img src="https://images.unsplash.com/photo-1544127715-bafd09df7c52?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=634&q=80" alt="" class="w-100"></div>
        <div class="col-4"><img src="https://images.unsplash.com/photo-1566592952746-15ea1f1a4133?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=653&q=80" alt="" class="w-100"></div>
    </div>
</div>
@endsection

我的一些朋友说,这也是导致我也必须将参数置于get'/'的原因,但是当我尝试使用它时,它又给了我先前未通过参数的错误。

请帮助我,我已经溢出了3个小时,仍然没有任何实际答案。

1 个答案:

答案 0 :(得分:0)

注释掉我在欢迎刀片中调用的路由后,发现了问题,显然是@auth使事情变得怪异。经过一番快速搜索之后,我发现如果您那里有@auth,显然您不能只说route('profile.show', $user)

您需要这样称呼它:auth()->user()