我希望在我的Laravel博客应用程序中添加能够在将其保存到数据库(如Wordpress)之前在新窗口/选项卡中打开帖子的功能。哪种方法最好?
我一直在阅读一些关于它的帖子,现在我尝试过这样的事情:
当我点击预览'我在创建帖子视图中的按钮我对store方法进行了ajax调用,这将返回laravel的刀片呈现视图...
$('.preview-post').click(function () {
var formData = $('#post-form').serializeArray();
$.ajax({
method: 'POST',
url: '/admin/posts/store',
dataType: 'json',
data: formData
}).done(function (response) {
var w = window.open();
w.document.write(response);
});
});
这是我控制器中的方法:
public function store(Request $request)
{
$title = $request->input('title');
$post = new Post();
$post->title = $title;
if ($request->ajax()) {
return response()->json(view('home.posts.ajax-post', compact('post'))->render());
}
}
正如您所看到的,目前我只是包含了标题字段,而不是整个帖子,只是为了检查它是否有效。
最后,这是我在新窗口中返回并打开的视图:
@extends('layouts.home')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-12">
<div id="post-content">
{{$post->title}}
</div>
</div>
</div>
</div>
@endsection
这就是它。问题是:它似乎有效(我能够在一个新的选项卡中获取视图,其中我在表单字段中输入了预期的标题),但我想我做错了什么,因为我有例如,一些动画svg元素不能在新窗口中以正确的方式呈现。我一个月前也开始使用Laravel Framework,所以我不知道我是否遵循了正确的工作流程来做这样的事情。