2017-04-18 54 views
0

正在开发一个应用程序,其中用户向应用程序发送应用程序给批准或不批准的管理员...用于存储此数据的字段具有布尔值0表示接受1对于被拒绝,,,因为它是新的laravel,所以这可能是一个错误的方法......有没有人有一种方法,使用按钮将数据库中的值从0更改为1时接受和1拒绝时归零。 .. AV一直在寻找这一点,并不能找到一个好办法做到这一点...好心帮助laravel批准和拒登用户作为管理员的请求

这里是我的应用模型

//relates application_id and admin_id 
 

 
public function approveApplications() 
 
{ 
 
    return $this->belongsToMany('Martin\Models\Application','applications','application_id','admin_id'); 
 
} 
 

 

 
public function approved() // returns all applications that are approved 
 
{ 
 
    return $this->approveApplications()->wherePivot('approved',true)->get(); 
 
}

和我的管理模式

\t public function application() 
 
\t { 
 
\t \t return $this->hasMany('Martin\Models\Application'); 
 
\t }

我为我的迁移

Schema::create('applications', function (Blueprint $table) { 
 
      $table->increments('id'); 
 
      $table->integer('user_id')->unsigned()->nullable(); 
 
      $table->integer('admin_id')->unsigned()->nullable(); 
 
      $table->integer('application_id')->unsigned()->nullable(); 
 
      $table->string('acronym'); 
 
      $table->string('destination'); 
 
      $table->integer('Number_of_days_hired'); 
 
      $table->string('vehicle_registration_number'); 
 
      $table->timestamp('departure_date_and_time'); 
 
      $table->boolean('approved')->default(0); 
 
      $table->timestamp("created_at")->useCurrent(); 
 
      $table->timestamp("updated_at")->useCurrent(); 
 
      $table->foreign('user_id') 
 
      ->references('id') 
 
      ->on('users') 
 
      ->onDelete('cascade'); 
 
      $table->foreign('admin_id') 
 
      ->references('id') 
 
      ->on('admins') 
 
      ->onDelete('cascade'); 
 
      }); 
 
    }

我想在应用程序来实现这一

approving and disapproving

回答

0

你是过于复杂的问题太多了:) 最好的办法是两个不同的路由添加到你的路由文件:

Route::post('application/approve/{id}', '[email protected]'); 
Route::post('application/reject/{id}', '[email protected]'); 

现在您将您的Approve和Reject按钮连接到上面的路线,并且您需要确保表单按钮将链接到这两条路线并发送您要批准/拒绝的应用程序的ID。 在你的控制,你会做应用程序的修改“批准”字段 - >例如:

public function postApprove($id) { 
    $application = Application::where('id', '=', e($id))->first(); 
    if($application) 
    { 
     $application->approved = 1; 
     $application->save(); 
     //return a view or whatever you want tto do after 
    } 
} 

执行类似的拒绝方法,除非你将设置“批准”字段为假或0

+0

很高兴你回复@Vojko只是想知道为什么使用邮政路线,而不是获取路线..那么为什么使用e($ id),而不是id ...我知道这可能不是很好问,我的道歉...我实际上是使用这种方法,但AV将布尔值更改为整数,以便当用户报价被拒绝时,它将存储为2而不是一个...这是一种方法...再次感谢您的答复... –

+0

使用后自用户发布要提供的数据r,没有从服务器获取它。对于这个特定的问题,你也可以使用Get ...但要小心Get方法更容易被篡改,并且可能会猜测链接而不会去你的网站(通过googleing CSRF了解更多关于伪造请求的信息)。如果有人篡改发送到服务器的数据,e($ id)用于转义字符以防止有害数据。这是数据消毒。至于整数,只要你不会迷失在你正在使用的东西上,就使用任何适合你的东西。我宁愿真/假组合。 – Vojko

+0

如果答案帮助你,你解决了你的问题,请标记为答案:) – Vojko

相关问题