2015-06-13 25 views
0

我試圖通過修補更新來更新用戶的配置文件。 該補丁似乎正在經歷,但按'保存個人資料'時,我只是去空白頁說:'禁止'。試圖修補時禁止用戶

這裏是我的代碼:

ProfileController.php

<?php namespace App\Http\Controllers; 

use Auth; 

use App\User; 
use App\Http\Requests; 
use App\Http\Controllers\Controller; 
use App\Http\Requests\UpdateUserRequest; 

use Illuminate\Http\Request; 

class ProfileController extends Controller { 

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

    public function show() 
    { 
     return view('pages.profile.profile'); 
    } 

    public function search($username) 
    { 
     $user = User::whereUsername($username)->first(); 

     return view('pages.profile.showprofile', compact('user')); 
    } 

    public function edit() 
    { 
     $user = Auth::user(); 

     return view('pages.profile.editprofile')->withUser($user); 
    } 

    public function update(UpdateUserRequest $request, User $user) 
    { 
     return 'update user'; 
    } 


} 

routes.php文件

<?php 

/* 
|-------------------------------------------------------------------------- 
| Application Routes 
|-------------------------------------------------------------------------- 
| 
| Here is where you can register all of the routes for an application. 
| It's a breeze. Simply tell Laravel the URIs it should respond to 
| and give it the controller to call when that URI is requested. 
| 
*/ 

# Home 
Route::get('/', '[email protected]'); 

# Profile 
#User binding 
Route::bind('user', function($username) { 
$user = App\User::find($username)->first(); 
}); 
Route::get('profile', '[email protected]'); 
Route::get('profile/edit', '[email protected]'); 
Route::get('profile/{username}', '[email protected]'); 
Route::patch('user/{username}', '[email protected]'); 

# Calendar 
Route::get('calendar-php', '[email protected]'); 
Route::get('calendar', '[email protected]'); 

# Authentication 
Route::controllers([ 
    'auth' => 'Auth\AuthController', 
    'password' => 'Auth\PasswordController', 
]); 

editprofile.blade.php

@extends('masterpage') 
... 
{!! Form::model($user, ['url' => 'user/' . $user->username, 'method' => 'PATCH']) !!} 
    <div class="form-group form-horizontal"> 
     <div class="form-group"> 
       {!! Form::label('username', 'Username:', ['class' => 'col-md-4 control-label']) !!} 
      <div class="col-md-6"> 
       <label class="align-left">{{ $user->username}}<label>  
      </div> 
     </div> 

     <div class="form-group"> 
       {!! Form::label('email', 'E-mail:', ['class' => 'col-md-4 control-label']) !!} 
      <div class="col-md-6"> 
       <label class="align-left">{{ $user->email}}<label> 
      </div> 
     </div> 

     <div class="form-group"> 
       {!! Form::label('name', 'Name:', ['class' => 'col-md-4 control-label']) !!} 
      <div class="col-md-6"> 
       <label class="align-left">{{ $user->name}} {{ $user->lastname}}<p> 
      </div> 
     </div> 

     <br /> 

     <div class="form-group"> 
       {!! Form::label('city', 'City:', ['class' => 'col-md-4 control-label']) !!} 
      <div class="col-md-6"> 
       {!! Form::Text('city', null, ['class' => 'form-control']) !!} 
      </div> 
     </div> 

     <div class="form-group"> 
       {!! Form::label('country', 'Country:', ['class' => 'col-md-4 control-label']) !!} 
      <div class="col-md-6"> 
       {!! Form::Text('country', null, ['class' => 'form-control']) !!} 
      </div> 
     </div> 

     <div class="form-group"> 
       {!! Form::label('phone', 'Phone:', ['class' => 'col-md-4 control-label']) !!} 
      <div class="col-md-6"> 
       {!! Form::Text('phone', null, ['class' => 'form-control']) !!} 
      </div> 
     </div> 

     <div class="form-group"> 
       {!! Form::label('twitter', 'Twitter link:', ['class' => 'col-md-4 control-label']) !!} 
      <div class="col-md-6"> 
       {!! Form::Text('twitter', null, ['class' => 'form-control']) !!} 
      </div> 
     </div> 

     <div class="form-group"> 
       {!! Form::label('facebook', 'Facebook link:', ['class' => 'col-md-4 control-label']) !!} 
      <div class="col-md-6"> 
       {!! Form::Text('facebook', null, ['class' => 'form-control']) !!} 
      </div> 
     </div> 

     <div class="form-group"> 
      <div class="col-md-6 col-md-offset-4"> 
       {!! Form::submit('Save Profile', ['class' => 'btn btn-primary']) !!} 
      </div> 
     </div> 

     </div> 
    </div> 
{!! Form::close() !!} 
... 

這頁我得到一次按下保存配置文件按鈕: enter image description here

我搜索了這個錯誤,這是我發現: //禁止 應用::中止(403, '拒絕訪問'); 雖然我試圖更新我自己的配置文件。 任何人都有一個想法,爲什麼它這樣做?

+1

我會說是,但我現在已經投入了很多這個Laravel項目。對我來說重新開始這個項目從頭開始對我來說並不明智。不過,我會在未來的項目中看看它。感謝您的提議。 – Pex

+0

另外,您可能對Laravel的新Lumen框架感興趣。它具有可比的性能和易用性。 – r3wt

回答

1

我意識到你可能已經知道了,但爲了使這篇文章更有幫助,我想發佈這個錯誤的可能原因。

看起來您正在使用自定義請求類「UpdateUserRequest」。如果你使用「php artisan make:request」來做到這一點,你會注意到你的請求文件中的「authorize()」方法默認會返回「false」。你可以改變它來返回「true」,或者在這個方法中寫你自己的授權邏輯。

+0

這幫了我! – lewis4u