@mhyeganeh
@gomnam
سلام
من دارم ارسال پیامک انجام میدم و زمانی که ارسال میزنم خطای Call to a member function sendsms() on string را میده
خط $sendClass->sendsms($username, $password, $from, $numbers, $txts); را خطا میده و میگه به صورت رشته میزنی .
خب من اومدم کلاس را در پوشه helpers تعریف کردم و رجیسترش کردم و کلاس را به درستی میشناسه.
مشکل از چیه ؟
نکته : توی کد متغیرهای username و password را به صورت هارد کد فعلا برای تست زدم
کد بخش store
public function store(Request $request)
{
$username = '********'; // required
$password = '********'; // required
$from = $request ['from']; // required
$sms = $request ['message']; // not required
// $api = api::where('id', '=', $request->from)->firstOrFail();
$numbers = explode("\r\n", $request->numbers);
$insert_data = collect();
foreach ($numbers as $value) {
$insert_data->push([
'number' => $value,
'user_id' => auth()->user()->id,
'status' => 'send',
'text' => $request->message,
'from' => $request['from'],
'created_at' => Carbon::now(),
'updated_at' => Carbon::now(),
]);
}
foreach ($insert_data->chunk(100) as $chunk) {
foreach ($numbers as $p) {
$txts [$p] = $sms;
}
// DB::table('sms')->insert($chunk->toArray());
$sendClass = \App\Helpers\SMSTools:: class;
$sendClass->send_sms($username, $password, $from, $numbers, $txts);
}
return redirect()->back()->with('success', 'ارسال انجام شد');
}
با سلام .
شما باید یک آبجکت از کلاس SMSTools
داشته باشید تا متد send_sms
رو روش صدا بزنید.
با نوع صدا زدنتون شما دارید اسم کلاس رو با namespace کاملش میریزید داخل متغیر... در واقع متغیر sendClass
شما به اینصورته:
$sendClass = '\App\Helpers\SMSTools';
'\App\Helpers\SMSTools'->send_sms(); // ?!?! impossible -> error
و خوب قاعدتا نمیتونید متدی رو روی string صدا بزنید و نیاز به ساختن ابجکت از کلاس دارید.
(اگر در درک مطالب مشکل داشتید پیشنهاد میکنم مباحث شی گرایی | OOP رو مجددا مرور کنید)
موفق باشید
همون طوری که بالا اشاره شد ابتدا باید با new یک آبجکت از کلاس بسازید و بعد متد رو صدا کنید:
//مثلا اینجوری:
$sendClass = new \App\Helpers\SMSTools();
$sendClass->send_sms($username, $password, $from, $numbers, $txts);
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟