【问题标题】:Make request (pass data) from Command File to Controller in Lumen/Laravel在 Lumen/Laravel 中从命令文件向控制器发出请求(传递数据)
【发布时间】:2020-11-03 13:56:53
【问题描述】:

我在命令文件中获取数据(查询)并希望通过 API(路由)传递给控制器​​

这里是我在命令文件中的请求代码:

$request = Request::create('/create_data_account', 'post', ['data'=>$data]);
$create = $app->dispatch($request);

这是路线:

$router->post('/create_data_account', 'APIController@create_account_data_api');

和我的控制器:

 public function create_account_data_api(Request $request)
    {
        $count = 0;
        foreach ($data as $key => $value) {
            $insert = Account::create([
                                'account_name'  => $value->account_name,
                                'type'          => $value->type,
                                'role_id'       => $value->role_id
                            ]);
            if($insert){
                $count++;
            }else{
                return $response = ['result'=>false, 'count'=>$count, 'message'=>'Internal error. Failed to save data.']; 
            }
        }
        return $response = ['result'=>true, 'count'=>$count, 'message'=>'Account data saved Successfully'];
    }

我很困惑为什么将数据传递给控制器​​不能使用该代码。谁能给我解决方案?谢谢

【问题讨论】:

  • 这些数据发送到请求对象尝试打印你的$request,你会发现你的数据像这样$request->all()
  • @Joseph 我没有收到任何错误,但我的数据仍然无法发送到控制器

标签: laravel api request lumen dispatch


【解决方案1】:

当您使用['data'=>$data] 提出请求时。这意味着所有数据都包含在数组的键 data 中。所以在foreach循环之前,需要添加声明语句$data = $request->input('data');来获取$data变量中的数据。

【讨论】:

  • 在第一行,$request = Request::create('/create_data_account', 'post', ['data'=>$data]);$data 有什么价值吗?试试['data' => ['some', 'test', 'data']]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-25
  • 2013-09-17
  • 1970-01-01
  • 2018-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多