Home > Blockchain >  Missing required parameters for [Route: ] - Laravel 7
Missing required parameters for [Route: ] - Laravel 7

Time:09-23

I do not get this error on production server which is laravel 5. I did a version upgrade and after I'm getting this error. I don't really know if version upgrade caused this.But I'm getting this error in laravel 7.

Error- Missing required parameters for [Route: ] [URI: users/{user_id}/privacy-groups-modal/{list_id}] [Missing parameters: user_id, list_id]. (View: /opt/lampp/htdocs/php/resources/views/wishlist/show.blade.php)

Web.php

Route::group(['middleware' => ['imageOptimizer', 'auth']], function() {
Route::get('users/{user_id}/privacy-groups-modal/{list_id}', 'UserController@getPrivacyGroupsModel');
});

show.blade.php

reffer the commented

//Error Line: 
var link = '{{action("UserController@getPrivacyGroupsModel", [\Auth::id(), "list_id"])}}'; 
//Error line
    $(document).on('changed.bs.select', '.privacy-selector', function (e, clickedIndex, newValue, oldValue) {
    
                if (!triggeredByClick)
                    changeTriggered = true;
                var _self = $(this);
                var val = _self.selectpicker('val');
                var prevValue = oldValue;
    
                if ($.isNumeric(val)) {
                    var privacy_level = _self.find('option[value=' val ']').attr('data-type');
                    if (privacy_level == 'custom') {
                        var link = '{{action("UserController@getPrivacyGroupsModel", [\Auth::id(), "list_id"])}}'; //Error line
                        link = link.replace('list_id', _self.attr('data-list-id'));
    
                        $.ajax({
                            url: link
                        })
                                .done(function(response) {
                                    privacy_group_modal = bootbox.dialog({
                                        title: '@lang("app.my_privacy_groups")',
                                        message: response,
                                        backdrop: false,
                                        animate: false,
                                        buttons: {
                                            cancel: {
                                                label: '@lang("app.cancel")',
                                                className: 'btn-default',
                                                callback: function () {
                                                    privacy_group_modal = null;
                                                    bootbox.hideAll();
                                                    _self.selectpicker('val', prevValue);
                                                    _self.selectpicker('refresh');
                                                }
                                            }
                                        }
                                    });
                                    $('input[type=hidden][name=list_id]').val(_self.attr('data-list-id'));
                                })
                                .fail(function() {
                                    $.toast({
                                        heading: 'Error',
                                        text: '@lang("app.error_occurred")',
                                        showHideTransition: 'slide',
                                        hideAfter: 2000,
                                        position: 'top-center',
                                        icon: 'error',
                                        afterHidden: function () {
                                            _self.selectpicker('val', prevValue);
                                            _self.selectpicker('refresh');
                                        }
                                    });
                                });
    
                    } else {
                        var link = '{{action("WishlistController@updateListPrivacyLevel", ["list_id", "level_id"])}}';
                        link = link.replace('list_id', _self.attr('data-list-id'));
                        link = link.replace('level_id', val);
    
                        $.ajax({
                            url: link,
                        })
                                .done(function() {
                                    $.toast({
                                        heading: 'Success',
                                        text: '@lang("app.successfully_updated")',
                                        showHideTransition: 'slide',
                                        hideAfter: 5000,
                                        position: 'top-center',
                                        icon: 'success'
                                    });
                                })
                                .fail(function() {
                                    $.toast({
                                        heading: 'Error',
                                        text: '@lang("app.error_occurred")',
                                        showHideTransition: 'slide',
                                        hideAfter: 2000,
                                        position: 'top-center',
                                        icon: 'error',
                                        afterHidden: function () {
                                            _self.selectpicker('val', prevValue);
                                            _self.selectpicker('refresh');
                                        }
                                    });
                                });
                    }
                }
    
                if (triggeredByClick)
                    triggeredByClick = false
            });

UserController.php

public function getPrivacyGroupsModel($user_id, $list_id)
    {
        $validator = Validator::make([
                'user_id' => $user_id,
                'list_id' => $list_id
            ], [
                'user_id' => 'required|exists:users,id',
                'list_id' => 'required|exists:wishlists,id',
            ]);

        if ($validator->fails()) {
            return response()->json($validator->errors()->all(), 422);
        }

        $privacy_level_custom = $this->privacy_level_repository
            ->getPrivacyLevelByName('Custom');

        $privacy_groups_of_user = $this->privacy_group_repository
            ->getPrivacyGroupsByUserId((int) $user_id);

        $wishlist = $this->wishlist_repository
            ->getWishlistById((int) $list_id);
        return view()->make('user.partials._privacy-groups-modal', [
                'wishlist' => $wishlist,
                'level_id' => $privacy_level_custom->id,
                'share_with_groups' => $privacy_groups_of_user->where('type', PrivacyGroup::TYPE_SHARE_WITH),
                'unshare_with_groups' => $privacy_groups_of_user->where('type', PrivacyGroup::TYPE_DONT_SHARE_WITH)
            ])
            ->render();
    }

Is this a problem with JQuery syntax after upgrade? Help would be much appreciated

CodePudding user response:

You have to use like below

var authID = "{{\Auth::id()}}";

var link   = "{{ url('') }}/users/" authID "/privacy-groups-modal/list_id";

link       = link.replace("list_id", _self.attr('data-list-id'));

CodePudding user response:

you can also use

Route::get('users/{user_id}/privacy-groups-modal/{list_id}','UserController@getPrivacyGroupsModel')->name('user-privacy');

var link = '{{route("user-privacy", [\Auth::id(), "list_id"])}}';

  • Related