拉拉威尔在最佳实践中建立关系



我定义了一个关系作者-书籍

然后我可以通过这个创建一本新书

$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()}};行时,自动创建book,不要等待javascript方法。你需要api来完成这项工作,实际上你应该创建一个名为book/create的路由,并在点击后发送带有jquery或更多库的ajax请求

最好在控制器中执行此操作,并且在视图中使用雄辩查询是不正确的,最好使用Ajax或JavaScript来调用API,如:

$.post( "{{route('route.name')}}", { /*object you want to create*/  } );

相关内容

  • 没有找到相关文章

最新更新