我是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?
请指导。
应为$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.');
}