如何将V-Model值ID传递给Laravel控制器?

发布于 2025-02-07 10:50:07 字数 4554 浏览 3 评论 0原文

我有一个问题,将选项ID传递给Laravel Controller使用Axios Post。我想在这里实现的是,我想将V模型中的ID值传递给Laravel控制器,以便我可以根据ID获取设备的其他值。

这是我的选择选项:

    <div class="form-group">
        <select class="form-select form-select-lg mb-3" v-model="choosed">
           <option :value="null">Choose Device to Send SMS</option>
           <option v-for="item in devices" :key="item.id" v-bind:value="item.id">{{ item.device_name }}</option>
        </select>
    </div>

这是我的数据:

   export default {
        data() {
            return {
                search: "",
                contacts: {}, 
                devices: {}, 
                file: '',
                paginate: 5,   
                selected: [],
                choosed: null,
                select_all: false,  
                maxCount: 320,
                remainingCount: 320,
                hasError: false,  
                form: {
                    first_name: null,
                    last_name: null,
                    mobile_number: null,
                },
                sms: {
                    // secret: null,
                    // deviceID: null,
                    message: null,
                },
            }
        },

这是我的Axios帖子要连接到控制器:

   Send(selected, choosed) {
    const vm = this;
    vm.sms.ids = selected;
    vm.sms.chooseds = choosed;
    axios.post("/api/send-sms", this.sms)
            .then(function(response) {
                if(response.data.status == 'success'){
                    vm.getContact();
                    vm.select_all = false;
                    vm.selected = [];
                    vm.choosed = null;
                    // this.sms.secret = null;
                    // this.sms.deviceID = null;
                    vm.sms.message = null;
                    swal('Send Success!', response.data.message,'success');
                }
                else{
                    swal('Error',response.data.message,'error');  
                }
                // if(response.data.status == 'error'){
                //     swal('Error',response.data.message,'error');  
                // }
                // if(response.data.status == 'errors'){
                //     swal('Error',response.data.message,'error');  
                // }
            })
            .catch(function (error) {
                console.log(error)
            });
    },

这是我的控制器:

public function sendMessage(Request $request){

    date_default_timezone_set('Asia/Manila');
    ini_set('max_execution_time', '0');
    // $secret = $request->input('secret');
    // $deviceID = $request->input('deviceID');
    $message = $request->input('message'); 
    $device = $request->input('chooseds');
    
        if(empty($request->input('ids'))) {
            return response()->json([
                'status' => 'error',
                'message' => 'Please Select Contact!'
            ]);
        }
        if($device == null) {
            return response()->json([
                'status' => 'error',
                'message' => 'Please Select Device!'
            ]);
        }
        // if(empty($secret) || empty($deviceID) || empty($message)) {
        if(empty($message)) {
            return response()->json([
                'status' => 'error',
                'message' => 'Input fields are required!'
            ]);
        }
        else
        {
            if(!empty($request->input('ids')) || !empty($device)) {
                $single_user_id = $request->input('ids');    
                $device_secret = Device::where('id', $device)->value('device_secret');   
                $device_id = Device::where('id', $device)->value('device_id');   
                $time = time();
                $secretMd5 = md5($device_secret.$time);  
                foreach ($single_user_id as $id) {   
                    $number = Contact::where('id', $id)->value('mobile_number');
                    file_get_contents("http://server_url/?to=".urlencode(trim($number))."&text=".urlencode($message)."&secret=$secretMd5&time=$time&deviceID=".$device_id);
                    sleep(20);
                }
                return response()->json([
                    'status' => 'success',
                    'message' => 'Selected Contact Succesfully Send SMS!'
                ]);
            }
        }  
}

I have a problem passing the select option id to laravel controller using axios post. What i want to achieve here is that i want to pass the id value in v-model to laravel controller so that i can fetch other value of the device based on the id.

Here is my select option:

    <div class="form-group">
        <select class="form-select form-select-lg mb-3" v-model="choosed">
           <option :value="null">Choose Device to Send SMS</option>
           <option v-for="item in devices" :key="item.id" v-bind:value="item.id">{{ item.device_name }}</option>
        </select>
    </div>

Here is my data:

   export default {
        data() {
            return {
                search: "",
                contacts: {}, 
                devices: {}, 
                file: '',
                paginate: 5,   
                selected: [],
                choosed: null,
                select_all: false,  
                maxCount: 320,
                remainingCount: 320,
                hasError: false,  
                form: {
                    first_name: null,
                    last_name: null,
                    mobile_number: null,
                },
                sms: {
                    // secret: null,
                    // deviceID: null,
                    message: null,
                },
            }
        },

Here is my axios post to connect to controller:

   Send(selected, choosed) {
    const vm = this;
    vm.sms.ids = selected;
    vm.sms.chooseds = choosed;
    axios.post("/api/send-sms", this.sms)
            .then(function(response) {
                if(response.data.status == 'success'){
                    vm.getContact();
                    vm.select_all = false;
                    vm.selected = [];
                    vm.choosed = null;
                    // this.sms.secret = null;
                    // this.sms.deviceID = null;
                    vm.sms.message = null;
                    swal('Send Success!', response.data.message,'success');
                }
                else{
                    swal('Error',response.data.message,'error');  
                }
                // if(response.data.status == 'error'){
                //     swal('Error',response.data.message,'error');  
                // }
                // if(response.data.status == 'errors'){
                //     swal('Error',response.data.message,'error');  
                // }
            })
            .catch(function (error) {
                console.log(error)
            });
    },

Here is my controller:

public function sendMessage(Request $request){

    date_default_timezone_set('Asia/Manila');
    ini_set('max_execution_time', '0');
    // $secret = $request->input('secret');
    // $deviceID = $request->input('deviceID');
    $message = $request->input('message'); 
    $device = $request->input('chooseds');
    
        if(empty($request->input('ids'))) {
            return response()->json([
                'status' => 'error',
                'message' => 'Please Select Contact!'
            ]);
        }
        if($device == null) {
            return response()->json([
                'status' => 'error',
                'message' => 'Please Select Device!'
            ]);
        }
        // if(empty($secret) || empty($deviceID) || empty($message)) {
        if(empty($message)) {
            return response()->json([
                'status' => 'error',
                'message' => 'Input fields are required!'
            ]);
        }
        else
        {
            if(!empty($request->input('ids')) || !empty($device)) {
                $single_user_id = $request->input('ids');    
                $device_secret = Device::where('id', $device)->value('device_secret');   
                $device_id = Device::where('id', $device)->value('device_id');   
                $time = time();
                $secretMd5 = md5($device_secret.$time);  
                foreach ($single_user_id as $id) {   
                    $number = Contact::where('id', $id)->value('mobile_number');
                    file_get_contents("http://server_url/?to=".urlencode(trim($number))."&text=".urlencode($message)."&secret=$secretMd5&time=$time&deviceID=".$device_id);
                    sleep(20);
                }
                return response()->json([
                    'status' => 'success',
                    'message' => 'Selected Contact Succesfully Send SMS!'
                ]);
            }
        }  
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

意犹 2025-02-14 10:50:07

首先,如果您使用了Laravel+Wortia+Vue,则无需在功能中定义“此”。您的代码有点混乱,请给您如何通过并获取参数,因此请尝试以下axios调用,如

axios.post(“/api/send/sms”,{'name':'unswaa'});

然后在您的控制器中您可以获取以下的名称

$request->name;

First you don't need to define 'this' in your function if u used Laravel+inertia+vue. your code is a little messy ill give you how you should pass and get parameters So try the axios call like below

axios.post("/api/send/sms", {'name' : 'Unswaa'});

then in your controller you can get the name like below

$request->name;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文