我正在开发一个Laravel应用程序。首先,我使用FormBuilder创建了一个表单,所以我有了这个:
{!! Form::open(['method' => 'delete', 'route' => ['clientes.destroy', $cliente->id]]) !!}
当我决定开始使用AngularJS时,我意识到我必须删除FormBuilder,因为现在我必须打印" cliente id"使用Angular(使用ng-repeat)。所以我将代码更改为此(如果您不了解Laravel忽略隐藏的输入):
<form method="POST" action="{{ route('clientes.destroy') }}/@{{ cliente.id }}">
<input name="_method" type="hidden" value="DELETE">
<input name="_token" type="hidden" value="{{ csrf_token() }}">
问题是@ {{cliente.id}}正在破坏我的应用程序,因此它不会显示我的客户。
更多上下文:此表单位于客户端表中,并显示一个删除客户端的按钮。
我应该如何打印变量?
编辑:如果我从表单中删除了操作属性,则会显示所有客户端,因此我100%确定问题与此连接有关。
EDIT2:这有效
<form method="POST" action="@{{ cliente.id }}">
这也有效
<form method="POST" action="{{ route('clientes.destroy') }}">
EDIT3:整个中继器。
<tr ng-repeat="cliente in buscador.clientes">
<td>@{{ cliente.tipo.nombre }}</td>
<td>@{{ cliente.nombre }}</td>
<td>@{{ cliente.direccion }}</td>
<td>@{{ cliente.telefono }}</td>
<td>@{{ cliente.email }}</td>
<td>@{{ cliente.rubro }}</td>
<td>
<form method="POST" action="@{{ '{{ route('clientes.destroy') }}/' + cliente.id }}">
<input name="_method" type="hidden" value="DELETE">
<input name="_token" type="hidden" value="{{ csrf_token() }}">
<button class="btn btn-danger"><i class="fa fa-trash-o"></i></button>
</form>
</td>
答案 0 :(得分:2)
1。首先,您需要更改AngularJS花括号,不要与Blade模板引擎冲突:
var app = angular.module('app', [])
.config(function($interpolateProvider) {
// To prevent the conflict of `{{` and `}}` symbols
// between Blade template engine and AngularJS templating we need
// to use different symbols for AngularJS.
$interpolateProvider.startSymbol('<%=');
$interpolateProvider.endSymbol('%>');
});
您目前正在使用@{{ }}
,这是冲突的根源,这就是为什么PHP无法正确解析您的代码的原因。我建议使用<%= %>
,因为它是常用的构造,您可以在Underscore templates中找到它。
2。然后,从Angular 1.2.x开始,您可以bind only one expression as action。
所以,这段代码应该有效:
<form
method="POST"
action="<%= '{{ route('clientes.destroy') }}/' + cliente.id %>">
答案 1 :(得分:0)
一个不做任何修改的更好的解决方案是:
docker push org-name/image-name