I using laravel 5.3 with PostgreSQL and i have code like this
public function store(array $request)
{
DB::transaction(function () use ($request) {
$phoneData = [
'phone_no' => $request['phone'],
'created_by' => $request['sdm_employee_id'],
'updated_by' => $request['sdm_employee_id'],
'created_stamp' => Carbon::now()->toDateString(),
'updated_stamp' => Carbon::now()->toDateString(),
];
$phone = DonorPhone::create($phoneData);
if (!$phone) {
throw new \Exception('Phone not created for account');
}
$data = [
'phone_id' => $phone->id,
'full_name' => $request['name'],
'address' => $request['address'],
'email' => array_key_exists('email', $request) ? $request['email'] : null,
'register_date' => Carbon::now()->toDateString(),
'marketer_id' => (int) $request['sdm_employee_id'],
'created_by' => (int) $request['sdm_employee_id'],
'updated_by' => (int) $request['sdm_employee_id'],
'company_id' => 2,
'user_status' => 1,
'note' => 'Add donor from sales track apps',
'phone_no_full' => $request['phone'],
'created_stamp' => Carbon::now()->toDateString(),
'updated_stamp' => Carbon::now()->toDateString(),
];
$contact = self::create($data);
if (!$contact) {
throw new \Exception('Contact not created');
}
$phone->user_id = (int)$contact->id;
$phone->save();
$target = new Target;
$target->updateAchievement($data['sdm_employee_id'], $this->tragetType, Carbon::now()->year, Carbon::now()->month);
throw new \Exception('Contact not created');
});
}
When create contact i got error
SQLSTATE[42883]: Undefined function: 7 ERROR: function php_donor_phone_get_all(integer) does not exist
LINE 1: SELECT php_donor_phone_get_all(NEW.id)
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
QUERY: SELECT php_donor_phone_get_all(NEW.id)
CONTEXT: PL\/pgSQL function public.php_donor_tr_full_text() line 6 at assignment (SQL: insert into \"public\".\"php_donor_personal\" (\"full_name\", \"address\", \"email\", \"register_date\", \"marketer_id\", \"created_by\", \"updated_by\", \"company_id\", \"user_status\", \"phone_no_full\", \"created_stamp\", \"updated_stamp\") values . . .
I check for function php_donor_phone_get_all is exist and my database username have a grant to execute this function. This seems to relate to a specific data type when calling the function, passing not an integer, but I do not know how to ensure that data in passing is an integer. There is a hint for me? Please help.