我試圖從bootstrap模式中使用Laravel中的Ajax存儲數據。這裏是我的代碼:通過Laravel中的Ajax存儲數據失敗
route.php
Route::get('/repository/', '[email protected]');
Route::post('/repository/', '[email protected]');
現在 repository.index
@section('popups')
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
<h4 class="modal-title" id="myModalLabel">Modal title</h4>
</div>
<div class="modal-body">
<div class="row row-bg">
<div class="col-md-12">
<input type="text" class="text-field" style="width:100%; margin-bottom: 10px;" id="name" name="name" placeholder="URL name*: ">
{{$errors->first('name','<span class="error_message postShake"><i class="fa mr fa-exclamation-triangle"></i> Please enter the name</span>')}}
</div>
<div class="col-md-12">
<input type="text" class="text-field" style="width:100%; margin-bottom: 10px;" id="url" name="url" placeholder="Enter the URL*: ">
</div>
<div class="col-md-12">
<textarea class="text-field" style="width:100%; margin-bottom: 10px;" id="description" name="description" placeholder="Enter the URL*: "></textarea>
</div>
</div>
</div>
<div class="modal-footer">
<button type="submit" class="whiteButton" data-dismiss="modal">Close</button>
<button type="button" id="add" name="add" class="blueButton">Save changes</button>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function(){
$('#add').click(function(e){
e.preventDefault();
var name=$(this).find('input[name=name]').val();
//post Ajax
$.post('/repository',
{
"name": $(this).find('input[name=name]').val(),
"url": $(this).find('input[name=url]').val(),
"description": $(this).find('input[name=description]').val()
}, function(data){
// console.log(data);
}, 'json');
});
});
</script>
@stop
而在RepositoryController.php
<?php
class RepositoryController extends BaseController{
public function index(){
return View::make('repository.index');
}
public function store(){
$validation=Validator::make(Input::all(), Link::$rules);
if($validation->fails()){
return Redirect::back()->withInput()->withErrors($validation->messages());
}
$link = new Link;
$link->name=Input::get('name');
$link->url=Input::get('url');
$link->description=Input::get('description');
$link->save();
return Redirect::route('repository.index');
}
}
Link.php
模型
<?php
class Link extends Eloquent{
public static $rule= ['name'=>'reuiqred',
'url'=>'required',
'description'=>'required'];
}
在控制檯,它給了我一個錯誤:Failed to load resource: the server responded with a status of 500 (Internal Server Error)
可能是什麼問題?此外,驗證錯誤消息也不會出現在模式中。
AJAX和重定向,將不作於第一手任何意義。 – itachi 2014-12-05 05:32:07
我如何使這個代碼工作?我正在學習Laravel – user1012181 2014-12-05 05:33:25
而不是重定向的Ajax,你應該使用'Response :: json()' – 2014-12-05 05:47:18