我有一个问题,当表中没有数据时,customer_id将为null。我知道有一个函数IFNULL,通过它我可以将customer_id null更改为0。所以这是我的查询不起作用。他检查了stackover流中解决的许多相关问题,但如果有人可以帮助我,我将找不到自己的解决方案。
它告诉我这个错误
“ message”:“试图获取非对象的属性”,
customerController代码是
public function store(Request $request)
{
//
try {
$this->validate($request,[
'name'=>'required',
'contact'=>'required|unique:Customers',
// 'contact'=>'required',
'address'=>'required',
'email'=>'required|string|email|max:191|unique:Customers',
]);
$getId = DB::table('Customers')->select('*', DB::raw('ifnull(id,0)'))->first();
$getfirst = $getId->id;
if($getfirst == 0)
{
$getfirst = 1;
$incId = $getfirst;
}
else{
$incId = $getfirst+1;
}
// $lastInsertedId= $Customer->id;
$Customer= Customer::create([
'name'=>$request['name']."-". $incId ,
'contact'=>$request['contact'],
'address'=>$request['address'],
'email'=>$request['email']
]);
return response()->json($Customer);
}
catch (Exception $e) {
return response()->json($e->getMessage(), 500);
}
}
客户表是
public function up()
{
Schema::create('customers', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name')->default("مشتری");
$table->integer('contact')->unique();
$table->string('address');
$table->string('email')->unique();
$table->softDeletes();
$table->timestamps();
});
}
最佳答案
IFNULL
用于检查该字段是否可为空。
因此,它不用于检查记录是否存在。
您可以使用empty()
检查对象是否存在
$getId = DB::table('Customers')->first();
$getfirst = empty($getId)? 0 : $getId->id;
关于mysql - 如何在laravel中使用IFNull,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59968603/