2016-11-25 20 views
0

私のウェブページをロードするときに、問題(ルートが定義されていない)が特定のものになっています。Laravel 5.3 - ルートが定義されていません、おそらく同じ名前のためですか?

これは主に下の2つの路線に焦点を当てて(私のルートである:彼らは同じ名前を持っていたよう

Route::group(['middleware' => ['web']], function() 
{ 
    Route::get('/', function() 
    { 
     return view('welcome'); 
    })->name('home'); 

    Route::post('/signup', [ 
     'uses' => '[email protected]', 
     'as' => 'signup' 
    ]); 

    Route::post('/signin', [ 
     'uses' => '[email protected]', 
     'as' => 'signin' 
    ]); 

    Route::get('logout', [ 
     'uses' => '[email protected]', 
     'as' => 'logout' 
    ]); 

    Route::get('profile', [ 
     'uses' => '[email protected]', 
     'as' => 'profile' 
    ]); 

    Route::post('profile', [ 
     'uses' => '[email protected]', 
     'as' => 'profile' 
    ]); 

    Route::group(['middleware' => ['auth']], function() 
    { 
     Route::get('/dashboard',[ 
      'uses' => '[email protected]', 
      'as' => 'dashboard', 
      'middleware' => 'auth' 
     ]); 
    }); 

    Route::get('charities', [ 
     'uses' => '[email protected]', 
     'as' => 'charities' 
    ]); 

    Route::resource('charities','charityController'); 

}); 

は、私は、これはエラーの原因となっているかもしれないと思いますが、私はかなりわからない

ユーザーコントローラー:

<?php 

namespace App\HTTP\Controllers; 

use App\User; 
use Illuminate\HTTP\Request; 
use Illuminate\Support\Facades\Auth; 
use Image; 
use Input; 

class UserController extends Controller 
{ 
    public function getDashboard() 
    { 
     return view('dashboard'); 
    } 

    public function postSignUp(Request $request) 
    { 
     $this->validate($request, [ 
      'email' => 'required|email|unique:users', 
      'name' => 'required|max:100', 
      'password' => 'required|min:4' 
     ]); 

     $email = $request['email']; 
     $name = $request['name']; 
     $password = bcrypt($request['password']); //bcrypt = hash password 

     $user = new user(); 
     $user->email = $email; 
     $user->name = $name; 
     $user->password = $password; 

     $user->save(); 

     Auth::login($user); 

     return redirect()-> route('dashboard'); 
    } 

    public function postSignIn(Request $request) 
    { 

     $this->validate($request, [ 
      'email' => 'required|', 
      'password' => 'required' 
     ]); 

     if (Auth::attempt(['email' => $request['email'], 'password' => $request['password']])) 
     { 
      return redirect()->route('dashboard'); 
     } 

     return redirect()->back(); 
    } 

    public function getLogOut() 
    { 
     Auth::logout(); 
     return redirect()->route('home'); 
    } 

    public function profile() 
    { 
     return view('profile', array('user' => Auth::user())); 
    } 

    public function updateAvatar(Request $request) 
    { 
     if($request->hasFile('avatar')) 
     { 
      $avatar = $request->file('avatar'); 
      $filename = time(). '.' . $avatar->getClientOriginalExtension(); 
      Image::make($avatar)->resize(300,300)->save(public_path('/uploads/avatar/' . $filename)); 

      $user = Auth::user(); 
      $user->avatar = $filename; 
      $user->save(); 
     } 

     return view('profile', array('user' => Auth::user())); 
    } 

    public function charities() 
    { 
     return view('charities'); 
    } 
} 

>

CharityControllerがfolloが含まれています?ウイング機能:

public function index() 
    { 
     $charities = charities::all(); 
     return view('charities', ['charities' => $charities]); 
    } 

これは慈善団体のページへのリンクです:

<a href="{{ route('charities') }}"> Charities </a> </li> 

これは私のデータベースに慈善団体の繰り返し処理を行う場合、私が使用する変数である:

@foreach ($charities as $charity) 

エラーわかります:

ルート[チャリティー]ではない罰金(閲覧: C:\ wamp64 \ WWW \ webproject \リソース\ビュー\ profile.blade.php)

私はルートのうち、この行をコメントアウト:

ルート::リソース( 'charities'、 'charityController');

エラーが表示されなくなり、プロファイルページが正常に機能し、その逆もあります。

+0

私の回答は役に立ちましたか? –

答えて

0

問題がある:Route::resource('charities','charityController');はすでにget routesが含まれていると、あなたはあなたがこのgetを削除することができますかあなたはそれが必要だ場合、それを維持し、その後のようRoute::resource('charities','charityController');

にあなたの名前付けを与えることができ

Route::get('charities', [ 
    'uses' => '[email protected]', 
    'as' => 'charities' 
]); 

前に定義されました:

Route::resource('charities', 'AdminUserController', ['parameters' => [ 'charities' => 'admin_user' ]]);/charities/{admin_user}詳細:https://laravel.com/docs/5.3/controllers#restful-naming-resource-routes

は、それが意味

+0

Rahul、ルートを分割するのはどういう意味ですか? – Jay

+0

@ジェイ、私はrefで、私の答えを更新しました。リンク。それがあなたを助けることを願ってください。ありがとう –

+0

これは申し訳ありませんでした。 – Jay

0

あなたはこれらの行

Route::get('charities', [ 
    'uses' => '[email protected]', 
    'as' => 'charities' 
]); 

を削除し、冗長ルートとコントローラ機能を作っているように見えるとしてビュー

<a href="{{ route('charities.index') }}"> Charities </a> </li> 

にこのルートを使用する必要がありますを作る願っています。慈善団体はリソース管理者であるため、利用可能なルートは

charities.index 
charities.create 
charities.store 
charities.edit 
charities.update 
charities.destroy 
関連する問題