laravel - 如何获取 id 以在控制器 laravel 中的另一个函数中使用
问题描述
我正在尝试在我的控制器中使用我的 show 函数中的 id,
我的控制器可以正常使用这个 $id
public function show($id)
{
$DigestReport = Meo::find($id);
return view('digest-report.show', ['DigestReport' => $DigestReport]);
}
我正在尝试将相同的 $id 用于另一个功能
public function getMailRecipients($id){
$meoId = Meo::find(id);
$mailRecipients = $this->meoRepository->getMailRecipients($meoId);
return DataTables::of($mailRecipients)->make();
}
但我收到以下错误
函数 DigestReportController::getMailRecipients() 的参数太少,第 54 行传递了 0,而预期的正好是 1
我该如何解决?
补充:如有必要,这是我的存储库
public function getMailRecipients($meoId){
return DB::table('mail_recipients')->where('meo_id', '=', $meoId)->select('id', 'name', 'email')->get();
我的 api.php 我存储的路线在哪里
Route::get('/digest-report/mail-recipients', 'DigestReportController@getMailRecipients')->name('digest-report.mail-recipients');
我使用此控制器的视图是用于制作数据表
$(document).ready(function () {
$('#mail-recipient-table').DataTable({
"processing": true,
"serverSide": true,
"ajax": '{{route('digest-report.mail-recipients')}}',
"columns": [{data:'id'},{data: 'name'},{data: 'email'}]
});
})
谢谢
解决方案
好的,你有两种方法可以做到这一点
- 在你的
web.php
你将更新你的路线是
Route::get('/digest-report/mail-recipients/{id}', 'DigestReportController@getMailRecipients')->name('digest-report.mail-recipients');
那么你的javascript代码将是
$(document).ready(function () {
$('#mail-recipient-table').DataTable({
"processing": true,
"serverSide": true,
"ajax": '{{route('digest-report.mail-recipients', $DigestReport->id)}}',
"columns": [{data:'id'},{data: 'name'},{data: 'email'}]
});
})
- 在您的控制器中,您将更新
getMailRecipients
public function getMailRecipients(Request $request){
$meoId = Meo::find($request->id); // or using helper request('id') function
$mailRecipients = $this->meoRepository->getMailRecipients($meoId);
return DataTables::of($mailRecipients)->make();
}
你的javascript代码将是相同的
推荐阅读
- c# - xUnit 抽象测试类,带有带参数的虚拟测试方法
- c++ - 为什么可变参数宏如此令人不快?
- reactjs - 如何对包含在 memo 和 withStyles 中的 React 组件进行浅层测试?
- javascript - 在逻辑之前使用异步调用渲染组件反应 HOC
- android-source - X (java:sdk) 不应链接到 Y (java:platform)
- angular - Angular 7路由器导航无法路由到子组件
- arrays - Google电子表格:如果列中存在某个值+公式
- php - Laravel 5.6:assertSessionHasErrors 导致“违反完整性约束:19 NOT NULL 约束失败”错误
- angular - 带有 AWS-amplify API 和 Auth 意外行为的 Angular 导致 403 未经授权
- excel - 使用 Dim 工作表和单元格的 QueryTables 目标