Как опубликовать в другой файл PHP в JavaScript при использовании Laravel Framework? - PullRequest
0 голосов
/ 14 мая 2019

Я создал создатель полигонов, который использовал для создания полигона определенного региона. Я хочу опубликовать имя, имя и регион полигона в другой php-файл и вставить данные в mysql из этого файла. Ранее я использовал родной php для создания похожих, и это работает. Но когда я пытаюсь сделать это в Laravel, это не работает. Я изучаю Laravel всего несколько дней, поэтому я не очень знаком с Laravel.

Это код в Javascript:

var polycoords = '';
turf.flip(layer.toGeoJSON()).geometry.coordinates[0].forEach(function(item) 
{
polycoords += item[0] + ',' + item[1] + "|";
});

function titikk(polycoords,kecamatan) {
   $.ajaxSetup({async:false});  

   var returnData = null;  
   $.post("code.php", { polycoords: polycoords, kecamatan: kecamatan }, 
   function(data) {
   returnData = data;   
   });
   $.ajaxSetup({async:true});  
   return returnData;  
}
titiks = titikk(polycoords,kecamatan);

code.php

require_once("conn.php");
$x ="";
$y ="";
$polycoords =  $_POST["polycoords"];
$kecamatan =  $_POST["kecamatan"];

$pieces = explode("|", $polycoords);
for($i=0;$i<sizeof($pieces);$i++)
{
    $data = array();
    $data = explode(",", $pieces[$i]);

    $x .= $data[0].",";
    $y .= $data[1].",";

}
$x = substr($x,0,-2);
$y = substr($y,0,-2);

$input_kecamatan = mysqli_query($conn, "insert into `kecamatan` (`nama`,`lat`,`lng`) 
    values ('$kecamatan','$x','$y')");

Я положил code.php в общую папку.

Правильно ли это делать в Ларавеле? Или мне нужно использовать почту в маршруте? Кто-нибудь может подсказать, как заставить это работать или другим способом, который все еще может получить то, что я хочу? Спасибо за помощь

Ответы [ 2 ]

0 голосов
/ 14 мая 2019

Хотя это и не рекомендуется, но вы можете поместить свой файл (code.php) в общую папку и использовать его.

Правильным способом будет создание нового маршрута, создание нового контроллера или действия и попыткаиспользуйте этот код в этом контроллере или действии.Таким образом, вам не нужно использовать mysql_query, вы можете использовать eloquent или Database Query Builder .

0 голосов
/ 14 мая 2019

Используя Laravel, вам нужно будет создать маршрут для вашего почтового запроса и в идеале контроллер, содержащий код из code.php.

Route::post('url-name/', 'CodeController@code')->name('route-name')

// or without controller

Route::post('url-name', function($request) {
    // Code Here
    return response()->json($response);
})

Более подробную информацию вы найдете в документации https://laravel.com/docs/5.7/routing#basic-routing

А для вставки данных в базу данных вы должны использовать Eloquent или Query Builder. Сначала Eloquent требует создания модели.

// Eloquent
    Kecamatan::create([
    'lat' => $lat,
    'long' => $long,
    'nama' => $nama    
])

// Query Builder

DB::table('kecamatan')->insert([
    'lat' => $lat,
    'long' => $long,
    'nama' => $nama    
])

Вы можете найти все это на

https://laravel.com/docs/5.7/queries

https://laravel.com/docs/5.7/eloquent

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...