尝试在数据库的特定列中创建多输入表单,包括json,text和image ..并在编辑时更新它。
类别是json列。 图像是图像列。 休息是文字。
检索部件运行良好,因为它是纯粹的Laravel,但我无法向数据库发送任何内容,无论是更新还是创建。
我被困在Json中,所以我还没有开始上传图片。
Json是在chrome控制台中生成的,并且工作正常,但是我收到错误500并且控制台日志为我的变量类别提供了未定义。
不确定为什么它没有反映在Laravel数据库中,下面是我的Ajax,路由和控制器
$(document).ready(function(){
var myUrl;
var Categories;
var type;
//create new task / update existing task
$("#reset").click(function (e) {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
})
e.preventDefault();
var myUrl = window.location.href;
var Categories = JSON.stringify($('#form-fields-tags').val());
var type = "POST";
console.log(Categories);
$.ajax({
type: type,
url: myUrl,
data: Categories,
dataType: 'json',
success: function (data) {
console.log(Categories);
},
error: function (data) {
var errors = $.parseJSON(data.responseText);
$.each(errors, function (key, value) {
$('#' + key).parent().addClass('error');
});
}
});
});
});
public function postCreate(Request $request)
{
$post = new blog([
'title'=>$request->input('title'),
'Smaller'=>$request->input('Smaller'),
'Categories'=>$request->input('Categories'),
'BodyS'=>$request->input('BodyS'),
'Status'=>$request->input('Status')
]);
$post->save();
return redirect()->route('admin.blog')->with('info', 'Post created, Title is: ' . $request->input('title'));
}
public function postUpdate(Request $request)
{
$post = blog::find($request->input('Bid'));
$post->title = $request->input('title');
$post->Smaller = $request->input('Smaller');
$Cat = json_decode($post->Categories);
$Cat = $request->input('Categories');
$post->BodyS = $request->input('BodyS');
$post->Status = $request->input('Status');
$post->save();
return redirect()->route('admin.blog')->with('info', 'Post edited, new Title is: ' . $request->input('title'));
}
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-tags">Categories</label>
<div class="container-fluid">
<div class="inline">
<input type="text" name="Categories" id="form-field-tags" value="{{ $post->Categories }}" placeholder="Enter tags ..." name="Categories" />
</div>
</div>
</div>
<div class="container-fluid">
<div class="inline">
<label>
<input type="text" name="Categories" id="form-field-tags"value="" placeholder="Enter tags ..." name="Categories" />
</label>
</div>
</div>
Route::group(['prefix'=> 'blog'], function(){
Route::get('/', [
'uses'=>'BlogController@getBlogIndex',
'as'=>'admin.blog'
]);
Route::get('/create',[
'uses'=>'BlogController@getPostCreate',
'as'=>'admin.createB'
]);
Route::get('/edit/{Bid}',[
'uses'=>'BlogController@getPostEdit',
'as'=>'admin.editB'
]);
Route::post('/create', [
'uses'=>'BlogController@postCreate',
'as'=>'admin.createB'
]);
Route::post('/edit', [
'uses'=>'BlogController@postUpdate',
'as'=>'admin.updateB'
]);
});
由于
答案 0 :(得分:1)
如果要在数据库中使用create
方法
然后使用:
use App\Blog;
public function postCreate(Request $request)
{
Blog::create(['title'=>$request->input('title'), ..]);
return redirect()->route('admin.blog')->with('info', 'Post created, Title is: ' . $request->input('title'));
}
答案 1 :(得分:0)
我的不好,添加ajax是过度杀死而不是必需的,因为laravel请求正在执行我需要的,我调整代码,现在一切正常。