Как выполнить все запросы MySql в ANGULARJS с использованием фреймворка Laravel 4

php mysql angularjs json

571 просмотра

1 ответ

Я пытаюсь запустить MySql Queries в платформе Laravel, используя ANGULARJS, но не могу удалить запись базы данных с помощью кнопки. Этот код вставляет данные в базу данных, получает данные в файл JSON и отображает строку данных из файла JSON. Сейчас я пытаюсь удалить данные из базы данных с помощью соответствующей кнопки удаления, и я хочу обновить существующие данные с помощью кнопки обновления.

Вот моя страница просмотра

<!DOCTYPE html>
<html>
<head>
  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>

</head>
<body ng-app="myApp" ng-controller="myCtrl">

<h2>Registration</h2><br/>
<table border=1>
<tr><td>Name:</td><td><input type="text" ng-model="nam" name="nam"><br/></td></tr>
<tr><td>Email:</td><td><input type="email" ng-model="email" name="email"><br/></td></tr>
<tr><td>Password:</td><td><input type="password" ng-model="password" name="password"><br/></td></tr>
<tr><td>City:</td><td><input type="text" ng-model="city" name="city"><br/></td></tr>
<tr><td><button ng-click="addFunc()" type="submit">Submit</button></td></tr>
</table>

</div>
</form>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope,$http) {

    $scope.addFunc = function() {
        $http({
          method  : 'POST',
          url     : 'http://localhost/crud/public/registration_data_page',
          data    : {nam:$scope.nam,email:$scope.email,password:$scope.password,city:$scope.city}
         }).then(function successCallback(response) {
          console.log('successCallback');
          console.log(response);

  }, function errorCallback(response) {
            console.log('errorCallback');
          console.log(response);
  });

}
$http({method:'GET', url:'http://localhost/crud/public/registration_json_page'}).success(function(response){
$scope.query = response;
});
});
</script>

<table style="width:100%" border=1>
  <tr>
    <th>Id</th>
    <th>Name</th>
    <th>Email</th>
    <th>Password</th>
    <th>City</th>
    <th>Delete</th>
  </tr>

  <tr ng-repeat="x in query">
    <td>{{x.id}}</td>
    <td>{{x.name}}</td>
    <td>{{x.email}}</td>
    <td>{{x.password}}</td>
    <td>{{x.city}}</td><br/>
    <td><input type="submit" name="delet" value="Delete"></td>
  </tr>

</body>
</html>

Вот мой контроллер.

<?php

namespace App\Http\Controllers;

use App\Http\Requests;
use Illuminate\Http\Request;
use DB;
use Session;
use Redirect;

class NewController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
    }
public function registration_data_function(Request $request)
    {
      echo $nam_value = $request->nam;
      echo $email_value = $request->email;
      echo $password_value = $request->password;
      echo $city_value = $request->city;

      $reg = DB::table('angular_registration')->insert(['name' => $nam_value, 'email' => $email_value, 'password'=>$password_value, 'city'=>$city_value]);
    }

    public function registration_json_function(Request $request)
    {
      $query = DB::select('select * from angular_registration');
      return response($query);
    }

    public function registration_function(Request $request)
    {
      $query = DB::select('select * from angular_registration');
      return view('registration');
    }
}

Вот моя страница маршрута

Route::get('/registration', 'NewController@registration_function');

Route::post('/registration_data_page', 'NewController@registration_data_function');

Route::get('/registration_json_page', 'NewController@registration_json_function');
Автор: Pradeep Источник Размещён: 08.11.2019 11:11

Ответы (1)


0 плюса

Точно так же, как у вас есть addFunction, создайте функцию removeFunction (id) в угловом JS, создайте соответствующий метод контроллера и маршрут

<?php
//in your route 
Route::get('/delete/{id}', 'NewController@delete')
->where('id'=>'[0-9]+');


//in your controller
public function delete($id)
{
  //please use your models to delete no raw db queries for security
 //prevent sql injection
  Model::find($id)->delete()
  return Response::json(['status'=>'deleted'])
}

в угловых

$scope.removeFunction=function(id){
  //call your delete route with the parameters
  ajax.get('/delete/'+id)
}

в вашем шаблоне использования

<td><input type="button"  ng-click={{removeFunction(x.id) }} name="delet" value="Delete"></td>

Извините, метод удаления в php не работает, так как удаление уже является ключевой работой, поэтому, пожалуйста, измените на deleteAngular или любое другое имя, обновите маршрут по пути

Автор: evanxg852000 Размещён: 20.08.2016 10:55
Вопросы из категории :
32x32