如何在laravel中使用post方法创建api

问题描述 投票:0回答:1

我是Laravel和Rest API创建的初学者。我正在尝试创建API来搜索交易者是否存在,具体取决于使用邮政方式的联系方式。

我的api.php页面具有

Route::post('/traders/searchTrader/', 'API\TradersController@searchTrader');

我的TraderController

namespace App\Http\Controllers\API;

use Illuminate\Http\Request;
use App\Http\Controllers\API\BaseController as BaseController;
use App\Trader;
use Validator;



 class TradersController extends BaseController
    {
     public function searchTrader(Request $request)
        {

    if (Trader::where('traders_contact_number', $request)->exists()) {
        //traders_contact_number exists in Trader table
        return $this->sendResponse($trader->toArray(), 'Trader is Exist.');
     }
     return $this->sendError('Trader not exist.');

        }
    }

我在邮递员中的URL类似于http://cms.test:8082/api/traders/searchTrader,并且选择了post方法。然后在“正文”选项卡中,输入诸如traders_contact_number之类的键作为关键字,并提供一些存在于表中而表交易者中不存在的值。

现在我每次都得到Trader not exist.输出。我没有得到如何在邮递员或浏览器中调试它来检查查询或请求获取编号的方法,并且正在检查我的表。

我尝试通过如下更改if结构的方法

 public function searchTrader(Request $request)
    {
 $trader = Trader::where('traders_contact_number', $request->traders_contact_number)->first();
// dd($trader);die();
        if (is_null($trader)) {
            return $this->sendError('Trader not exist.');
        }
 return $this->sendResponse($trader->toArray(), 'Trader is Exist.');

}

但是这也给了我Trader not exist输出。怎么了如何检查查询获取正确的值或如何对此进行调试?如何使用post方法创建API?

请指导。

laravel rest api http-post postman
1个回答
0
投票

应为$request->traders_contact_number

在$ request中,您将获得要通过邮递员传递的整个对象,因此请使用$request->traders_contact_number而不是$request

现在您的状况看起来像。

if (Trader::where('traders_contact_number', $request->traders_contact_number)->exists()) {
    //traders_contact_number exists in Trader table
    return $this->sendResponse($trader->toArray(), 'Trader is Exist.');
 }

带有null,您可以这样通过。

$trader = Trader::where('traders_contact_number', $request->traders_contact_number)->first();

if ($trader === null) {
   return $this->sendError('Trader not exist.');
}
© www.soinside.com 2019 - 2024. All rights reserved.