2017-06-06 13 views
0

私は小さな問題があります。LaravelがリンクをクリックするとURLに追加されます

リンクをクリックするとウェブサイト/作成/ビジネスに行きますが、何も行われていないにもかかわらずリンクが再度クリックされると、何らかの理由でウェブサイト/作成/ビジネス/作成/ビジネスに行きます。

<li class="dropdown"> 
    <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> 
     {{ Auth::user()->name }} <span class="caret"></span> 
    </a> 
    <ul class="dropdown-menu" role="menu"> 
     <li> 
      <a href="profile/{{Auth::user()->id}}">Profile</a> 
      <a href="create/business/">Add Business</a> 
      <a href="{{ url('/logout') }}" onclick="event.preventDefault(); document.getElementById('logout-form').submit();"> 
       Logout 
      </a> 
      <form id="logout-form" <a href="{{ url('home') }}" action="{{ url('/logout') }}" method="POST" style="display: none;"> 
       {{ csrf_field() }} 
      </form> 
     </li> 
    </ul> 
</li> 

ルート:

Route::get('profile/{user_id}', '[email protected]'); 
Route::post('update', '[email protected]'); 
Route::get('create/business', '[email protected]'); 
Route::post('create', '[email protected]'); 

ProfileController:

public function checkid($user_id) { 
    if (Auth::check()) 
    { 
     $user_id = Auth::id(); 
     return view('profile', [ 
      'id' => $user_id 
     ]); 
    } 
} 
function updateProfile(Request $request) { 
    $user = $request->user(); 
    $twitter = $request->input('twitter'); 
    $facebook = $request->input('facebook'); 
    $instagram = $request->input('instagram'); 
    $telephone = $request->input('telephone'); 
    $user->twitter_personal = $twitter; 
    $user->facebook_personal = $facebook; 
    $user->instagram_personal = $instagram; 
    $user->telephone = $telephone; 
    $result = $user->save(); 
    if($result) { 
     $message = 'success'; 
    }else{ 
     $message = 'error'; 
    } 
    return redirect()->back()->withInput()->with('message', $message); 
} 

BusinessController:

function addBusiness() { 
    return view('addBusiness'); 
} 

function createBusiness(Request $request) { 
    $name = $request->input('name'); 
    $type = $request->input('type'); 
    $email = $request->input('email'); 
    $user_id = Auth::id(); 
    $business = new Business(); 
    $business->name = $name; 
    $business->type = $type; 
    $business->email = $email; 
    $business->user_id = $user_id; 
    $business->save(); 
    $address1 = $request->input('address1'); 
    $address2 = $request->input('address2'); 
    $town = $request->input('town'); 
    $city = $request->input('city'); 
    $postcode = $request->input('postcode'); 
    $telephone = $request->input('telephone'); 
    $address = new Address(); 
    $address->firstline_address = $address1; 
    $address->secondline_address = $address2; 
    $address->town = $town; 
    $address->city = $city; 
    $address->postcode = $postcode; 
    $address->telephone = $telephone; 
    $address->save(); 
    $result = $business->save(); 
    $result2 = $address->save(); 

    $business_id = $business->id; 
    $address_id = $address->id; 
    DB::table('business_address')->insert(array('business_id' => $business_id, 'address_id' => $address_id)); 
    DB::table('user_business')->insert(array('user_id' => $user_id, 'business_id' => $business_id)); 

    if($result && $result2) { 
     $message = 'success'; 
    }else{ 
     $message = 'error'; 
    } 
    return redirect()->back()->withInput()->with('message', $message); 
} 

答えて

3

<a href="create/business/">現在ので、これを解決するために<a href="/create/business/">でなければなりませんリンクは相対的なもので絶対的なものではないので、再度クリックすると、現在のURLの最後に同じ参照が追加されます。

とにかく、あなたが将来的には他の問題を回避するために、Laravelの方法でリンクを生成する必要があります

Route::get('create/business', '[email protected]'); 

<a href="{{ url('create/business') }}"> 

または

個人的に
Route::get('create/business', '[email protected]')->name('createBusiness'); 

<a href="{{ route('createBusiness') }}"> 

私はルートを変更するので、もし私が、二番目のを好みますリンクは引き続き機能しますが、ルート定義にname('yourRoute')を追加する必要があります。

+0

か? Przemek

+0

@Przemekマッサージの中にマッサージを使うことはできないので、 href = "{{url( 'profile /'。Auth :: user() - > id)}}"> '私は今確信していますが、私は 'id'を2番目のパラメータ'

関連する問題