【发布时间】:2018-08-28 22:34:41
【问题描述】:
我创建了一个模式,显示特定于他们的 id 条目的信息,并放置了 Approve 和 Reject 按钮,如下所示。
当用户点击“Accept”或“Reject”时,它需要传递与查看条目相关的id,以便用户可以执行请求的操作,无论是接受还是拒绝条目(默认状态为'pending') .
vendor.blade.php
<div class="modal-footer">
<span class="pull-left">
<form method="POST" action="{{ route('approve') }}">
@method('PUT')
@csrf
<button type="submit" class="btn btn-success">Approve</button>
</form>
</span>
<span class="pull-right">
<form method="POST" action="{{ route('reject') }}">
@method('PUT')
@csrf
<button type="submit" class="btn btn-danger">Reject</button>
</form>
</span>
</div>
在VendorController.php
public function index()
{
$vendors = DB::select('select company_name, roc_no, created_at from mides_vendors');
$vendor_id = Vendor::where('status', 'Pending');
return view('panel.vendor', ['vendors' => $vendors]);
}
ApprovedVendorController.php
<?php
namespace App\Http\Controllers;
use App\User;
use App\Vendor;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class ApproveVendorController extends Controller
{
public function approve(Request $request, $id)
{
DB::insert('insert into mides_users(name, email, password) select name,roc_no,password from mides_vendors where id = :id', ['id' => $id]);
DB::update('update mides_vendors set status = :status where id = :id', ['status' => 'Approved', 'id' => $id]);
return redirect('/');
}
public function reject(Request $request, $id)
{
DB::update('update mides_vendors set status = :status where id = :id', ['status' => 'Rejected', 'id' => $id]);
return redirect('/');
}
}
routes/web.php
Route::prefix('/panel')->group(function () {
Route::get('/dashboard', function () {
return view('panel.dashboard');
});
/* These routes only display the information/modal
Route::get('/approve-vendor', 'VendorController@showNewRegistration'); // return vendor.blade.php
Route::get('/vendor-approved', 'VendorController@showApproved'); // return vendor-approve.blade.php
Route::get('/vendor-reject', 'VendorController@showRejected'); // return vendor-reject.blade.php
/* These route used to perform the specific action */
Route::put('/approve/{id}', 'ApproveVendorController@approve')->name('approve');
Route::put('/reject{id}', 'ApproveVendorController@reject')->name('reject');
});
但是,它返回此错误。
Error got after clicking Accept or Reject
如何传递数据的 id?我尝试如pass the database value to modal popup 所示使用第二个答案选项(除了ajax 选项)创建模式。我需要为这些创建另一个控制器吗?
已编辑:按照@Wreigh 的说明进行操作后,它起作用了,这意味着状态从“待定”变为“接受/拒绝”。但是,当我返回上一页时,即/panel/approve-vendor(该页面用于显示待处理列表模式),然后我收到错误undefined variable vendorId。
【问题讨论】:
-
因为没有发送 {id} 方法到 route:Route::put('/approve/{id}' 用 post 方法写可以吗?
-
Supun Fiction Praneeth,我已经在 ApprovedVendorController 中添加了 {id},还是错了?我看到那篇帖子并给出了相同的结果。
-
是的,这是错误的,使用post或put时无法获得这样的id,我会发布答案