Laravel: Как вставить данные по клику на ссылку href, используя маршрут и контроллер - PullRequest
0 голосов
/ 13 мая 2019

После нажатия кнопки «Да, я уверен» данные не вставляются в базу данных Вот мой код Auth пользователь заблокировать другого пользователя от просмотра своего профиля. поэтому я вставляю данные auth username и блокирую имя пользователя user data после нажатия на кнопку «Да, я уверен», но данные не вставляются.

мой .blade файл profile/index.blade.php здесь "Да, я уверен" здесь есть ссылка для перехода по маршруту

<div class="cd-popup" role="alert">
  <div class="cd-popup-container"><br>
    <div class="content_block">Are you sure you want to block this person?</div><br>
   <div class="content_block_instruct">Hide content and notifications from this user.</div><br>
    <ul class="cd-buttons">

      <li> <a href="{{route('profile.index',['username' => $user->username])}}">Yes I am Sure!</a></li>

      <li><a href="">Cancled</a></li>
    </ul>
    <a href="#0" class="cd-popup-close img-replace">Close</a>
  </div> <!-- cd-popup-container -->
</div>

Файл маршрута

Route::post('/{username}', [
    'uses' => 'Profile\UserProfileController@blockUser',
    'as'   => 'profile.index',
]);

Файл контроллера Чье имя пользователя отображается в URL, с его именем пользователя проверяют модель BlockUser, если block_username и URL username не вставляют одинаковые данные, иначе данные не совпадают с их данными, вставленными в базу данных

public function blockUser(Request $request, $username)
{

       $blocked = User::where('id', Auth::user()->id)->first();
       if (blockuser::where('block_username', $username)->first()){

       }else{
           $blocked = new blockuser;
           $blocked->user_username = Auth::user()->username;
           $blocked->block_username = $username;
           $blocked->save();
       }

       $user = Auth::user();
       $userprofile = userprofile::where('user_id', Auth::user()->id)->first();
       return view('profile.index',compact('user', 'userprofile'));
 }

Вот моя модель пользователя

  public function blockuser(){
        return $this->hasOne( BlockUser::class);
  }

Модель BlockUser

use App\User;

class BlockUser extends Authenticatable
{

      public $timestamps = false;

      protected $fillable = [
        'user_username', 'block_username',
      ]; 

      public function user()
      {
        return $this->belongsTo( User::class, 'username' );
      }
}

Таблица базы данных block_users

id   user_username   block_username
1    
2

1 Ответ

1 голос
/ 14 мая 2019

Нажав просто на ссылку, вы получите GET HTTP Request. Вам нужно изменить с Route::post(...) на Route::get(...). Если вы по-прежнему хотите использовать метод post, выполните простой вызов ajax с методом post для события onclick тега привязки.

...