2017-04-18 111 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

相關問題