Javascript Angular、Laravel 4和MySQL数据库最佳实践
我对Angular很陌生,对Laravel 4有点经验。 我正在构建一个应用程序,用户可以在其中“动态”编辑,但也可以保存到MySQL 最初的计划是使用Angular管理实时编辑,并使用Eloquent将数据存储和检索到MySQL数据库。我知道你可以通过Angular连接到DB,但我想知道最好的解决方案是什么Javascript Angular、Laravel 4和MySQL数据库最佳实践,javascript,php,mysql,angularjs,laravel-4,Javascript,Php,Mysql,Angularjs,Laravel 4,我对Angular很陌生,对Laravel 4有点经验。 我正在构建一个应用程序,用户可以在其中“动态”编辑,但也可以保存到MySQL 最初的计划是使用Angular管理实时编辑,并使用Eloquent将数据存储和检索到MySQL数据库。我知道你可以通过Angular连接到DB,但我想知道最好的解决方案是什么 最好是将其分开,还是将其用于所有操作 如果在任何情况下都使用Angular,是否存在性能问题 对于DB交互来说,Angular是否同样易于使用和雄辩 如果我使用Eloquent for
- 最好是将其分开,还是将其用于所有操作
- 如果在任何情况下都使用Angular,是否存在性能问题
- 对于DB交互来说,Angular是否同样易于使用和雄辩
- 如果我使用Eloquent for DB,是否直接将数据传递给Angular
谢谢你看看伟大的Dave Mosher编写的本教程,我想这可能正是你想要的,他使用了Laravel、Angular和MySQL: Youtube视频:
源代码:使用angular.js和laravel的最佳方法是使用RESTAPI 例如,如果您有一个管理面板来管理用户,那么该方法将是 在你的路线上
Route::resource('users', 'UsersController');
控制器看起来像这样
<?php
/**
*
* Users Controller
*
*/
class UsersController extends AdminController {
/**
* Display all users.
*
* @return Response
*/
public function index() {
$users = User::where('id', '!=', Auth::user()->id)->get();
return Response::json(array(
'status' => 'success',
'users' => $users->toArray()),
200
);
}
/**
* Show the form for creating a new resource.
*
* @return Response
*/
public function create() {
//
}
/**
* Store a newly created resource in storage.
*
* @return Response
*/
public function store() {
// add some validation also
$input = Input::all();
$user = new User;
if ( $input['name'] ) {
$user->name = $input['name'];
}
if ( $input['username'] ) {
$user->username = $input['username'];
$user->password = Hash::make($input['username']);
}
if ( $input['email'] ) {
$user->email = $input['email'];
}
$user->save();
return Response::json(array(
'status' => 'success',
'users' => $user->toArray()),
200
);
}
/**
* Display the specified resource.
*
* @param int $id
* @return Response
*/
public function show($id) {
$user = User::where('id', $id)
->take(1)
->get();
return Response::json(array(
'error' => false,
'users' => $user->toArray()),
200
);
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return Response
*/
public function edit($id) {
//
}
/**
* Update the specified resource in storage.
*
* @param int $id
* @return Response
*/
public function update($id) {
// add some validation also
$input = Input::all();
$user = User::find($id);
if ( $input['name'] ) {
$user->name = $input['name'];
}
if ( $input['username'] ) {
$user->username = $input['username'];
}
if ( $input['email'] ) {
$user->email = $input['email'];
}
$user->save();
return Response::json(array(
'status' => 'success',
'message' => 'User Updated'),
200
);
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return Response
*/
public function destroy($id) {
$user = User::find($id);
$user->delete();
return Response::json(array(
'status' => 'success',
'message' => 'User Deleted'),
200
);
}
}
获取-获取单个用户以进行编辑
$http({method: 'GET', url: Data.root_path + 'users/'+id}).
success(function(data, status, headers, config) {
$scope.entry = data.users[0];
}).
error(function(data, status, headers, config) {
$scope.entry = [];
});
放置-更新单个用户
$http.put(Data.root_path + 'users/'+entry.id, entry).
success(function(data, status, headers, config) {
//
}).
error(function(data, status, headers, config) {
//
});
后期保存新用户
$http.post(Data.root_path + 'users', entry).
success(function(data, status, headers, config) {
//
}).
error(function(data, status, headers, config) {
//
});
删除-删除用户
$http.delete(Data.root_path +'users/'+id)
.success(function(response) {
//
})
.error(function(response) {
//
});
创建RESTful端点以使用Laravel管理资源。如前所述,使用资源控制器非常简单:
Route::resource('user','userscoontroller')代码>
然后使用AngularJS资源与之交互。获取用户、编辑模型然后保存(通过回调中的$调用)的示例(来自文档)
更好的是,为资源创建一个Angular JS服务,这样您就可以将其注入多个控制器并定义所有方法
下面是一篇关于如何设置的好帖子:
谢谢,现在我们来看一看。有人能提到用一个来代替另一个的+和-吗?似乎我可以使用Laravel和jQuery做任何我想做的事情。我想知道在业务逻辑和DB交互中使用Angular是否有优势?在本例中,您认为在业务逻辑中使用Angular优于Laravel有什么优势吗?你认为它能平衡服务器和客户端之间的负载吗?我对Laravel4+AngularJS有很好的感觉,它用于定制灵活的框架。
$http.post(Data.root_path + 'users', entry).
success(function(data, status, headers, config) {
//
}).
error(function(data, status, headers, config) {
//
});
$http.delete(Data.root_path +'users/'+id)
.success(function(response) {
//
})
.error(function(response) {
//
});
var User = $resource('/user/:userId', {userId:'@id'});
var user = User.get({userId:123}, function() {
user.abc = true;
user.$save();
});