Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 阿贾克斯邮政路线在拉雷维尔4_Php_Ajax_Laravel_Laravel 4 - Fatal编程技术网

Php 阿贾克斯邮政路线在拉雷维尔4

Php 阿贾克斯邮政路线在拉雷维尔4,php,ajax,laravel,laravel-4,Php,Ajax,Laravel,Laravel 4,我将使用ajax向当前页面发送一些数据,以便在数据库中插入内容。 假设以下ajax代码: $('#newPost :submit').click(function(e){ var BASE = 'http://localhost/project/public/'; e.preventDefault(); $.post(BASE, { 'message' : $('#newPost textarea.message').val()

我将使用ajax向当前页面发送一些数据,以便在数据库中插入内容。
假设以下ajax代码:

$('#newPost :submit').click(function(e){
            var BASE = 'http://localhost/project/public/';
    e.preventDefault();
    $.post(BASE, {
        'message' : $('#newPost textarea.message').val()
        }, function(data) {
        $('#content').prepend('<p>' + data + '</p>');
    });
});
$('newPost:submit')。单击(函数(e){
var BASE=http://localhost/project/public/';
e、 预防默认值();
$员额(基数:{
'message':$('#newPost textarea.message').val()
},函数(数据){
$('#content')。前置(''+data+'

'); }); });
这段代码将数据发送到URL/并且运行良好。但是我想把它发送到一个路由。Name哪个路由将它发送到一个controller@action.
在你的路线中,是否有这样做的方法或解决办法

Route::get('data', array('uses' => 'HomeController@store'));
在HomeController中

public function store() {
  $input = Input::all(); // form data
  // validation rules
  $rules = array(
    'email'   => 'required|email', 
    'name'    => 'required', 
  ); 

  $validator = Validator::make($input, $rules); // validate
  // error handling
  if($validator->fails()) {
    if(Request::ajax()) {   // it's an ajax request                 
      $response = array(
         'response'  =>  'error',
         'errors'    =>  $validator->errors()->toArray()
      );                
    } else { // it's an http request
       return Redirect::intended('data')
                  ->withInput()
                  ->withErrors($validator);
    }
  } else { // validated
     // save data
  }
}
最后是剧本

var root_url = "<?php echo Request::root(); ?>/"; // put this in php file
$('#newPost :submit').click(function(e){
    var BASE = root_url + 'data';
    e.preventDefault();
    $.post(BASE, {
        'message' : $('#newPost textarea.message').val()
        }, function(data) {
        $('#content').prepend('<p>' + data + '</p>');
    });
});
var root_url=“/”;//把这个放到php文件中
$('newPost:submit')。单击(函数(e){
var BASE=root_url+“数据”;
e、 预防默认值();
$员额(基数:{
'message':$('#newPost textarea.message').val()
},函数(数据){
$('#content')。前置(''+data+'

'); }); });
您可以更改

var BASE = 'http://localhost/project/public/';


注意使用而不是使用
url::to('controller/action')构建url

这是Laravel 4语法吗?因此我需要使用Request::ajax()检查它是否是ajax请求。在常规使用中,为了发回错误,我使用了$errors->has,在ajax提交之后,我如何能够访问$errors?!如果有错误或没有错误,您可以发送不同的响应,因此我需要使用Request::ajax()检查它是否是ajax请求。在常规使用中,为了发回我使用的错误,
$errors->has
,在提交ajax之后,我如何能够访问$errors?!
var BASE = '<php echo URL::route("name");?>'
Route::post('action', array('as' => 'name', 'uses' => 'HomeController@action'));