【问题标题】:NotFoundHttpException error found发现 NotFoundHttpException 错误
【发布时间】:2017-11-18 18:51:18
【问题描述】:

我想更新个人资料照片,我正在使用 Laravel。执行此操作时,我收到一个错误...抱歉英语不好。
我包括了路由、ProfileController、admin.blade.php、profile.blade.php。
请帮我解决这个问题。

路线是:

Route::get('admin/profile/{username}', 'ProfileController@profile');
Route::post('admin/profile/{username}', 'ProfileController@update_avatar');

profile.blade.php

@extends('layouts.admin')

@section('content')

<style type="text/css">
.profile-img{
    width: 150px;
    height: 150px;
    border: 5px solid white;
}
</style>

<div class="container">
<div class="row">
    <div class="col-md-8 col-md-offset-2">
        <div class="panel panel-default">
            <div class="panel-heading">
                <h4>{{ $user->username }}'s profile</h4>
            </div>
            <div class="panel-body">
                <div class="col-md-3">
                    <center><img src="{{ asset('/uploads/avatars/'.$user-
>avatar) }}" class="img-responsive img-circle profile-img" alt="" 
style="width: 150px;"></center>
                </div>
                <div class="col-md-4 text-center">
                    <h5>Set Your profile</h5>
                    <form action="{{ url('admin/profile/'.Auth::user()-
>username) }}" method="POST" enctype="multipart/form-data">

                        {{ csrf_field() }}
                        <input type="file" name="file" class="input-sm form-
control" required=""> <br>
                        <button class="btn btn-success btn-sm">Set 
profile</button>
                    </form>
                </div>
                <div class="col-md-5 text-center">
                    {{ Auth::user()->name }} <br>
                    {{ Auth::user()->username }} <br>
                    {{ date('d-m-Y', strtotime(Auth::user()->dob)) }} <br>
                    {{ Auth::user()->email }} <br>
                    <button class="btn btn-warning btn-sm">Follow 
me</button>
                </div>
            </div>
        </div>
    </div>
    </div>
</div>

@endsection

admin.blade.php

<li><a href="{{ url('admin/proflie/'.Auth::user()->username) }}">My Profile</a></li>

profileController

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Admin;
use App\User;
use Auth;
use Image;

class ProfileController extends Controller
{

public function __construct()
{
    $this->middleware('auth:admin');
}

public function profile($username)
{
    $user = Admin::where('username', $username)->first();
    return view('admin.profile')->with('user'->$user);
}

public function update_avatar(Request $request)
{
    if ($request->hasFile('file')) {

        $avatar = $request->file('file');
        $filename = $avatar->getClientOriginalName();

        Image::make($avatar)->resize(300, 300)-
>save(public_path('/uploads/avatars/'. $filename));

        $user = Auth::user();
        $user->avatar = $filename;
        $user->save();
    }
    return view('admin.profile')->with('user'->$user);
  }
  }

请帮帮我,谢谢。

【问题讨论】:

  • 发布你得到的跟踪
  • 检查您的 laravel 日志以查找导致此错误的请求。然后检查路线是否正确
  • 我发现使用命名路由让整个事情变得更容易,所以Route::get('/Products', 'ProductController@display')-&gt;name('CreateProducts'); 意味着我可以在刀片中引用route('CreateProducts')
  • 检查网址有错别字proflie&lt;li&gt;&lt;a href="{{ url('admin/proflie/'.Auth::user()-&gt;username) }}"&gt;My Profile&lt;/a&gt;&lt;/li&gt;

标签: php html css mysqli laravel-5


【解决方案1】:

使用

public function update_avatar(Request $request,$user){

}

你的路线有参数,所以一定要捕获它。

https://laravel.com/docs/5.4/requests#accessing-the-request

【讨论】:

  • 非常感谢 Lucas Gervas 的回答,当我单击“我的个人资料”的下拉菜单时,它给出了上述错误,(NotFoundHttpException 错误)它没有重定向到个人资料页。请告诉我什么是错误。
  • 我的个人资料
  • 。查看 proflie 而不是个人资料
  • 我的个人资料
  • 尝试将网址直接写入您的地址栏。
  • 天哪,谢谢 Lucas Gervas,你的头脑很敏锐,非常感谢你的大力帮助,我很感激。
  • 【解决方案2】:

    您在指向路线的链接中有错字,而不是您提到的个人资料 proflie..

    <li><a href="{{ url('admin/proflie/'.Auth::user()->username) }}">My Profile</a></li>
    

    这应该可以工作。

    <li><a href="{{ url('admin/profile/'.Auth::user()->username) }}">My Profile</a></li>
    

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签