-1

i get an error

Undefined Variable : map_tasik

i want to add two method on controller, and method can be call on one view

Code Laravel on route like below

Route::middleware('auth')->group(function() {
    Route::get('rsk_down_maps', 'rskMaps@rsk_down_maps_tasik');
    Route::get('rsk_down_maps', 'rskMaps@rsk_down_maps_banjar');
});

Code Laravel on Controller

public function rsk_down_maps_tasik() {
        $rsk_tasik = DB::select("SELECT * FROM gmaps_geocache WHERE address LIKE '%RSK%' AND address LIKE '%tasikmalaya%'");

                $config['center'] = 'Telkom Tasikmalaya, Kota Tasikmalaya';
                $config['zoom'] = '16';
                $config['map_height'] = '500px';
                $config['geocodeCaching'] = true;
                $config['scrollwheel'] = false;                        
                GMaps::initialize($config);

                //add marker
                $marker['position'] = 'RSK Jl. Ir. H. Juanda No. 906 Tasikmalaya 906, Kota Tasikmalaya';
                $marker['infowindow_content'] = 'KFTD Tasikmalaya WIFI ID';
                $marker['icon'] = 'https://chart.googleapis.com/chart?chst=d_map_spin&chld=0.4|0|FF0000|9|b|AP';
                GMaps::add_marker($marker);

                $map_tasik = GMaps::create_map();

                return view('data.data_rsk_ap.rsk_down_maps', 
                    compact('map_tasik',
                            'rsk_tasik'));
    }

    public function rsk_down_maps_banjar() {
        $rsk_banjar = DB::select("SELECT * FROM gmaps_geocache WHERE address LIKE '%RSK%' AND address LIKE '%banjar%'");

                $config['center'] = 'Plaza Telkom Banjar, Kota Banjar';
                $config['zoom'] = '16';
                $config['map_height'] = '500px';
                $config['geocodeCaching'] = true;
                $config['scrollwheel'] = false;                        
                GMaps::initialize($config);

                // add marker
                $marker['position'] = 'RSK Kantor Dinas Pendidikan Banjar;Jl. Gerilya Pamokolan, Kota Banjar';
                $marker['infowindow_content'] = 'Kantor Dinas Pendidikan Banjar';
                $marker['icon'] = 'https://chart.googleapis.com/chart?chst=d_map_spin&chld=0.4|0|FF0000|9|b|AP';
                GMaps::add_marker($marker);

                $map_banjar = GMaps::create_map();

                return view('data.data_rsk_ap.rsk_down_maps', 
                    compact('map_banjar',
                            'rsk_banjar'));
    }

code on View like this

<div class="active tab-pane" id="tasikmalaya">

                    <div class="box-body">
                        {!! $map_tasik['js'] !!}
                        {!! $map_tasik['html'] !!}
                    </div>
</div>

<div class="tab-pane" id="banjar">
                            <div class="box-body">
                                {!! $map_banjar['js'] !!}
                                {!! $map_banjar['html'] !!}
                            </div>
                </div>

why i get an error Undefined Variable? is it because I use too much Route in one controller?

tereško
  • 58,060
  • 25
  • 98
  • 150
  • 2
    Declaring the same route twice will result in the last route being the route that gets used. So you're only calling the `rsk_down_maps_banjar` method in your controller – Derek Pollard Jul 14 '18 at 07:39
  • so i cant add two method in one view? – Muhammad Anwari Jul 14 '18 at 08:29
  • Derek is talking about **routes**, you're asking about **view**. You have **two** routes `Route::get('rsk_down_maps')` -> only the **LAST** will execute the controller method. You can't have define routes and controller actions like that. – N.B. Jul 14 '18 at 09:50

1 Answers1

0

because view can only use variable in one method in a controller, if you want to use two variable in same view, you should pass them all to view, your controller may like this:

public function rsk_down_maps_tasik() {
    $rsk_tasik = DB::select("SELECT * FROM gmaps_geocache WHERE address LIKE '%RSK%' AND address LIKE '%tasikmalaya%'");

            $config['center'] = 'Telkom Tasikmalaya, Kota Tasikmalaya';
            $config['zoom'] = '16';
            $config['map_height'] = '500px';
            $config['geocodeCaching'] = true;
            $config['scrollwheel'] = false;                        
            GMaps::initialize($config);

            //add marker
            $marker['position'] = 'RSK Jl. Ir. H. Juanda No. 906 Tasikmalaya 906, Kota Tasikmalaya';
            $marker['infowindow_content'] = 'KFTD Tasikmalaya WIFI ID';
            $marker['icon'] = 'https://chart.googleapis.com/chart?chst=d_map_spin&chld=0.4|0|FF0000|9|b|AP';
            GMaps::add_marker($marker);

            $map_banjar = GMaps::create_map();
            $rsk_tasik = GMaps::create_map();

            return view('data.data_rsk_ap.rsk_down_maps', 
                compact('map_tasik',
                        'rsk_tasik'));
}

public function rsk_down_maps_banjar() {
    $rsk_banjar = DB::select("SELECT * FROM gmaps_geocache WHERE address LIKE '%RSK%' AND address LIKE '%banjar%'");

            $config['center'] = 'Plaza Telkom Banjar, Kota Banjar';
            $config['zoom'] = '16';
            $config['map_height'] = '500px';
            $config['geocodeCaching'] = true;
            $config['scrollwheel'] = false;                        
            GMaps::initialize($config);

            // add marker
            $marker['position'] = 'RSK Kantor Dinas Pendidikan Banjar;Jl. Gerilya Pamokolan, Kota Banjar';
            $marker['infowindow_content'] = 'Kantor Dinas Pendidikan Banjar';
            $marker['icon'] = 'https://chart.googleapis.com/chart?chst=d_map_spin&chld=0.4|0|FF0000|9|b|AP';
            GMaps::add_marker($marker);

            $map_banjar = GMaps::create_map();
            $rsk_banjar = GMaps::create_map();

            return view('data.data_rsk_ap.rsk_down_maps', 
                compact('map_banjar',
                        'rsk_banjar'));
}
suxiaolin
  • 11
  • 3