به کد ههای من توجه کنید
web.php
Route::get('/code', 'HomeController@code')->name('code');
Route::post('/send', 'HomeController@send')->name('send');
HomeController.php
<?php
namespace App\Http\Controllers;
use App\Blog;
use App\Faq;
use App\SendSMS;
use App\Service;
use App\Slideshow;
use App\User;
use Illuminate\Http\Request;
class HomeController extends Controller
{
/**
* Show the application dashboard.
*
* @return void
*/
public function index()
{
$slideshows = Slideshow::latest()->get();
$services = Service::latest()->get();
$faqs = Faq::latest()->get();
$blogs = Blog::latest()->get();
return view('Home.index', compact('slideshows', 'services', 'faqs', 'blogs'));
}
public function machines()
{
return view('Home.machines');
}
public function networks()
{
return view('Home.networks');
}
public function computers()
{
return view('Home.computers');
}
public function internets()
{
return view('Home.internets');
}
public function code()
{
return view('Home.send');
}
public function send(Request $request, $mobile = '09389267856')
{
if($request->ajax()) {
$request->validate([
'mobile_number' => 'required',
]);
$sendSms = new SendSMS;
$sendSms->mobile_number = $request->mobile_number;
$sendSms->code = rand(10000,99999);
if ($sendSms->save()) {
try {
$api = new \Kavenegar\KavenegarApi("Example Api");
$sender = "10004346";
$message = " $sendSms->code ";
$receptor = $mobile;
$result = $api->Send($sender, $receptor, $message);
if ($result) {
foreach ($result as $r) {
echo "messageid = $r->messageid";
echo "message = $r->message";
echo "status = $r->status";
echo "statustext = $r->statustext";
echo "sender = $r->sender";
echo "receptor = $r->receptor";
echo "date = $r->date";
echo "cost = $r->cost";
}
}
} catch (\Kavenegar\Exceptions\ApiException $e) {
echo $e->errorMessage();
} catch (\Kavenegar\Exceptions\HttpException $e) {
echo $e->errorMessage();
}
}
return response()->json(['data' => $request->mobile_number, 'id' => $sendSms->id]);
}
}
}
send.blade.php
@extends('Home.master')
@section('content')
<div id="networks" class="pt-5 pb-5 mt-5">
<div class="container">
<div class="row">
<div class="col-md-4 m-auto">
<div class="card mt-3">
<div class="card-header">
<h4>ثبت نام</h4>
</div>
<div class="card-body">
<form id="FormSend">
<div class="form-group" id="form-group-1">
<label for="mobile_number">شماره تلفن</label>
<input type="text" class="form-control" name="mobile_number" id="mobile_number">
</div>
<div class="form-group" id="form-group-2">
<label for="code">کد</label>
<input type="text" class="form-control" name="code" id="code">
</div>
<div class="form-group">
<button type="submit" class="btn btn-danger" id="btn-ok">تایید</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
@section('script')
<script>
$(document).ready(function(){
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$("#btn-ok").click(function () {
$("#form-group-1").hide();
$("#form-group-2").fadeIn();
});
$('form').submit(function (event) {
event.preventDefault();
mobile_number = $('#mobile_number').val();
$.post("{{ route('send') }}", {mobile_number:mobile_number}, function (data) {
$('#mobile_number').val('');
console.log(data);
});
});
});
</script>
@endsection
وقتی که من بعد از ذخیره کردن شماره تلفن همراه، این خطا را می بینم.
سلام
@oxbir
$this->validate($request, [
'mobile_number' => 'required',
]);
$mobile_data = [
'mobile_number' => $request->input('mobile_number'),
];
$Send_new = SendSMS::create($mobile_data);
یه مثال ساده به این شکل
مدل مربوطه رو فراخونی کنید
نیم اسپیسشم وارد شه
متد create رو صدا بزنید
و هر تعداد متغیر دارید بریزید داخلش
سلام
@Alimotreb
من کد کامل را فرستادم و متد create
را ندارم.
میشه بگی چطوری توی یه آرایه و بعد از متد create
استفاده کنم
سلام
@oxbir
$this->validate($request, [
'mobile_number' => 'required',
]);
$mobile_data = [
'mobile_number' => $request->input('mobile_number'),
];
$Send_new = SendSMS::create($mobile_data);
یه مثال ساده به این شکل
مدل مربوطه رو فراخونی کنید
نیم اسپیسشم وارد شه
متد create رو صدا بزنید
و هر تعداد متغیر دارید بریزید داخلش
به این شکل؟
public function send(Request $request, $mobile = 'Mobile Number')
{
if($request->ajax()) {
$this->validate($request, [
'mobile_number' => 'required',
]);
$mobile_data = [
'mobile_number' => $request->input('mobile_number'),
'code' => rand(10000,99999),
];
if ($mobile_data->save()) {
try {
$api = new \Kavenegar\KavenegarApi("َApi Example");
$sender = "10004346";
$message = " $mobile_data->code ";
سلام
@oxbir
بله ولی شما تو کد قبلیتون
$sendSms = new SendSMS;
یه شی ساختید
الان نیاز نیست شی بسازید
public function send(Request $request, $mobile = 'Mobile Number')
{
if($request->ajax()) {
$this->validate($request, [
'mobile_number' => 'required',
]);
$mobile_data = [
'mobile_number' => $request->input('mobile_number'),
'code' => rand(10000,99999),
];
$mobile_new = SendSMS::create($mobile_data);
if ($mobile_new && $mobile_new instanceof SendSMS) {
// if ($mobile_data->save()) {
try {
$api = new \Kavenegar\KavenegarApi("َApi Example");
$sender = "10004346";
$message = " $mobile_data->code ";
این مدل SendSMS رو هم حتما use شده باشه تو کنترلر
use App\Models\SendSMS;
البته اگر تو این مسیره!
اولش اشاره کرد به
Add \[mobile\_number\] to fillable property to allow mass assignment on \[AppSendSMS\]
بعدش رفتم مدل SendSMS، دستور زیر را اضافه کردم.
protected $fillable = ['mobile_number'];
بعدش خطای همین array to string conversion laravel
را داد.
بعدش دستور dd()
را نوشتم mobile_number
را با شماره موبایل برام برگرداند.
public function send(Request $request, $mobile = 'Mobile Number')
{
dd($request->all());
مشکل هنوز حل نشده است.
سلام مجدد
این را وارد کردم
$mobile_new = SendSMS::create($mobile_data);
if ($mobile_new && $mobile_new instanceof SendSMS) {
dd('salam');
اما هیچ مقداری را برام برنگردون همین خطای 500 را نمایش داد
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟