【发布时间】:2015-07-26 23:12:00
【问题描述】:
我正在尝试使用 Angular-Frontend 和 Laravel-Backend 建立一个简单的博客。
但我不知道如何发布内容。 似乎每个教程的做法都不同,我只是无法遵循。
我想要的:将数据发送到 Laravel,它应该将其保存到数据库中。
角工厂
angularBlog.factory('blogFactory', function($http){
var blogFactory = {};
var api = 'http://localhost:8888/blogApi/public/api/';
blogFactory.getPosts = function() {
var result2 = $http.get(api + 'getposts');
return result2;
};
//
// POST FUNCTION
//
blogFactory.postPost = function(data) {
return $http ({
method: 'POST',
url: api + 'post',
headers: { 'Content-Type' : 'application/x-www-form-urlencoded' },
data: $.param(data)
});
};
return blogFactory;
});
角度控制器
angularBlog.controller('blogController',['$scope','$http','blogFactory', function($scope, $http, blogFactory){
$scope.getAllPosts = function() {
blogFactory.getPosts()
.success(function(result){
$scope.posts = result;
})
.errror(function(){
$scope.status = 'cant load data';
})
};
//
// INSERT POST FUNCTION
//
$scope.insertPost = function() {
var data = {
'header': $scope.header,
'text' : $scope.htmlVariable
};
blogFactory.postPost(data);
alert('testalert');
}
}]);
所以在 Laravel 内部我正在做:
class blogController extends Controller
{
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
return blogPost::get();
}
//
// STORE FUNCTION
//
public function store(Request $request)
{
$post = new blogPost();
$post->header = $request->input('header');
$post->text = $request->input('text');
$post->save();
}
我只是不明白我应该如何将我的数据发送到 laravel。它应该包含两个值,标题和文本。 但当然,现在什么也没有发生。
谁能给我一个提示我哪里想错了?
【问题讨论】:
-
我不确定我是否理解。您的 blogFactory.postBlog() 已经在向 Laravel 发送请求。你能详细说明什么是行不通的吗?
-
好吧,实际上没有任何效果。我不确定 $request->input('header') 是否应该能够检索我想要的数据?
-
没有任何效果不是答案。如果您在 Javascript 控制台中遇到任何错误 - 我们需要知道。如果您在服务器日志中收到任何错误 - 我们需要知道。如果请求是否从 Angular 发送到 Laravel - 我们也需要知道这一点。否则,仅通过查看所有代码很难找到原因。您需要帮助,我们需要更多信息 :)
-
是的,$request->input('header') 应该可以工作
-
请注意
$http默认在响应正文中发送 json,而不是表单编码。如果要使用表单编码,请适当设置请求标头