如何解决Laravel 从视图中创建关系 - 最佳实践?
我定义了一个关系 作者 - 书
然后我可以通过这样做来创建一本新书
$author = new author();
$author->books()->create();
这行得通,在我看来也是这样做的
{{$author->books()->create()}}
所以每次加载网站时,我都会创建一本新书。我尝试将其嵌入一个带有按钮的小脚本中。
<button onclick="addBook()">Add new book</button>
<p id="addBook"></p>
<script>
function addBook() {
document.getElementById("addBook").innerHTML = {{$author->books()->create()}};
}
</script>
脚本在页面加载时加载,当然无需按下按钮即可执行。
最好的做法是什么? 这是一种有意的方式吗? 或者我应该更好地从表单中发出 POST 调用并在控制器中处理创建?
解决方法
你不能这样做。当代码到达 document.getElementById("addBook").innerHTML = {{$author->books()->create()}};
行时,自动创建书籍并且不等待 javascript 方法。您需要 api 来执行此操作,实际上您应该创建一个名为 book/create 的路由,并在单击后使用 jquery 或更多库发送 ajax 请求
这个最好在controller里面做,在view里面用eloquent query是不对的, 最好使用 Ajax 或 JavaScript 调用 API,例如:
$.post( "{{route('route.name')}}",{ /*object you want to create*/ } );
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。