2017-06-06 179 views
0

好吧,我有一個小問題。Laravel點擊鏈接添加到網址

當用戶點擊一個鏈接時,它會轉到網站/創建/業務這是很好,但如果沒有做任何事情,但鏈接再次點擊,無論出於何種原因它去網站/創建/業務/創建/業務。

<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/">來解決這個問題,因爲你目前的鏈接是相對的,而不是絕對的,所以當你再次點擊鏈接時,相同的參考將添加到當前網址的末尾。

無論如何,你應該會在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你不能在鬍鬚內使用鬍鬚,所以它應該是' id)}}」>'。我現在不確定,但我認爲你應該使用第二個參數''