Laravel:如何在使用路由和控制器的href链接上单击以插入数据

时间:2019-05-13 06:20:11

标签: html laravel eloquent laravel-5.8

单击“是”之后,按钮数据未插入数据库 这是我的代码Auth用户阻止其他用户查看其个人资料。 因此,单击“是,我确定”后,我要插入数据身份验证用户名并将数据块中的用户名阻止,但未插入数据。

我的.blade文件Navigator.pushReplacement( context, MaterialPageRoute(builder: (BuildContext context) => MyHomePage())); 这里的“是的,我可以” href链接可以继续航行

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>

控制器文件 谁的用户名显示在URL上,如果block_username和URL用户名未插入相同的数据,否则数据与将其插入数据库的数据不同,则用用户名检查BlockUser模型

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

这是我的用户模型

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'));
 }

BlockUser模型

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

数据库表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

1 个答案:

答案 0 :(得分:1)

仅单击链接实际上会发出GET HTTP请求。您需要从Route::post(...)更改为Route::get(...)。如果您仍然希望使用post方法,请在锚标记的onclick事件上使用post方法进行简单的ajax调用。