AngularJs Ngresource SlimPhp
AngularJs Ngresource SlimPhp
html
<!doctype
html>
<html
ng-app="projects">
<head>
<meta
charset="utf-8">
<title
ng-bind="title"
ng-cloak>Restaurant
—</title>
<link
href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css"
rel="stylesheet">
</head>
<body
ng-controller="ProjectListCtrl">
<a
class="brand"
href="#">Projects
Manager</a>
<div
id="app-container"
class="container-fluid">
<div
class="row-fluid">
<div
class="span12"
id="main"
ng-view>
</div><!--/.span12-->
</div><!--/.row-fluid-->
<footer>Copyright
Projects
©
2013</footer>
</div><!--/.container-->
<script
src="http://code.jquery.com/jquery-1.10.0.min.js"></script>
<script
src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js">
</script>
<!--
Don't
forget
to
load
angularjs
AND
angular-resource.js
-->
<script
src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script>
<script
src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular-resource.js">
</script>
<!--Controllers-->
<script
src="app.js"></script>
</body>
</html>
app.js
var
projectsApp
=
angular.module('projects',
['ngResource']);
projectsApp.config(function($routeProvider)
{
$routeProvider.
when('/',
{
controller:
'ProjectListCtrl',
templateUrl:
'projectlist.html'
}
).
when('/detail/:id',
{
controller:
'ProjectDetailCtrl',
templateUrl:
'template/projectdetail.html'
}).
when('/add/:id',
{
controller:
'ProjectDetailCtrl',
templateUrl:
'template/projectAdd.html'
}).
otherwise('/');
});
projectsApp.factory(
'RestFull',
[
'$resource',
function(
$resource
)
{
return
function(
url,
params,
methods
)
{
var
defaults
=
{
update:
{
method:
'put',
isArray:
false
},
create:
{
method:
'post'
}
};
methods
=
angular.extend(
defaults,
methods
);
var
resource
=
$resource(
url,
params,
methods
);
resource.prototype.$save
=
function(f)
{
if
(
!this.id
)
{
this.$create(f);
}
else
{
this.$update(f);
}
};
return
resource;
};
}
]
);
projectsApp.controller('ProjectDetailCtrl',
function(Project,
$routeParams,
$scope,
$location)
{
$scope.project
=
$routeParams.id
?
Project.get({id:
$routeParams.id})
:
new
Project();
$scope.save
=
function()
{
$scope.project.$save(
function(p){
console.log("Save
or
UpDate
Project");
console.log(p);
//$scope.projects.push(p);
console.log("----------------------");
$location.path('/');
}
);
}
});
index.php
<?php
require
'Slim/Slim.php';
$app
=
new
Slim();
$app->get('/',
'index');
$app->get('/projects',
'getProjects');
$app->get('/projects/:id',
'getProject');
$app->post('/projects',
'addProject');
$app->put
('/projects',
'updateProject');
$app->delete('/projects/:id',
'delProject');
$app->run();
function
index()
{
$request
=
<<<EOT
<h1>index<h1/>
EOT;
}
echo $request;
function
getProjects()
{
try {
$db = getConnection();
$stmt = $db->query($sql);
$projects = $stmt->fetchAll(PDO::FETCH_OBJ);
$db = null;
echo json_encode($projects);
} catch(PDOException $e) {
}
function
getProject($id)
{
try {
$db = getConnection();
$stmt = $db->prepare($sql);
$stmt->bindParam("id", $id);
$stmt->execute();
$project = $stmt->fetchObject();
$db = null;
echo json_encode($project);
} catch(PDOException $e) {
function
addProject()
{
$request = Slim::getInstance()->request();
$project = json_decode($request->getBody());
try {
$db = getConnection();
$stmt = $db->prepare($sql);
$stmt->bindParam("name", $project->name);
$stmt->bindParam("phone", $project->phone);
$stmt->execute();
$project->id = $db->lastInsertId();
$db = null;
echo json_encode($project);
} catch(PDOException $e) {
}
function
updateProject()
{
$request = Slim::getInstance()->request();
$body = $request->getBody();
$project = json_decode($body);
try {
$db = getConnection();
$stmt = $db->prepare($sql);
$stmt->bindParam("name", $project->name);
$stmt->bindParam("phone", $project->phone);
$stmt->bindParam("id", $project->id);
$stmt->execute();
$db = null;
echo json_encode($project);
} catch(PDOException $e) {
}
function
delProject($id)
{
try {
$db = getConnection();
$stmt = $db->prepare($sql);
$stmt->bindParam("id", $id);
$stmt->execute();
$db = null;
} catch(PDOException $e) {
function
getConnection()
{
$dbhost="127.0.0.1";
$dbuser="root";
$dbpass="root";
$dbname="db_prueba";
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $dbh;
}
?>