Я создал проект Laravel.Я использую laravel 5.6
Показать продукты и категории в балде с нижеуказанным кодом (Товары принимаются правильно.):
<div id="orderProductSelect" class="row">
<h2>chouse product :</h2>
@foreach($products as $product)
<div class="col-md-4" style="margin: 10px;">
<div id="{{ $product->id }}" class="orderProduct" style="cursor: pointer;">
<img style="width: 100%;height: 225px;" src="/images/{{$product->filename}}">
<span style="display: block;">{{ $product->name }}</span>
</div>
</div>
@endforeach
</div>
<div class="categoryAjax" style="display: none;">
<div class="row">
<h3>chouse category :</h3>
@foreach($categories as $category)
<div class="col-md-4" style="margin: 10px;">
<div id="{{ $category->id }}" class="orderProduct" style="cursor: pointer;">
<img style="width: 100%;height: 225px;" src="/images/{{$category->filename}}">
<span style="display: block;">{{ $category->name }}</span>
</div>
</div>
@endforeach
</div>
</div>
и отправляю код продукта с помощью Ajax:
jQuery('.orderProduct').click(function(e){
var productId = $(this).attr('id');
var token = '{{ csrf_token() }}';
e.preventDefault();
jQuery.ajax({
url: "{{ url('order/getCategoryAjax') }}",
method: 'post',
data: {
id: productId,
_token: token
},
success: function(data){
$('#orderProductSelect').hide();
$('.categoryAjax').show();
}});
});
Я получаю идентификатор продукта в контроллере заказа.Теперь найдите категорию продукта:
public function getCategoryAjax(Request $request){
$product = Product::findOrFail($request->id);
$categories = $product->category()->get();
if ($request->ajax()) {
return View::make('user.profile.order.create')->with(compact('categories'))->render();
}
}
Модель моего продукта:
class Product extends Model{
protected $fillable = [ 'name', 'filename', 'description'];
public function category(){
return $this->hasMany(Category::class,'product_id');
}}
Теперь у меня ошибка на странице create.blade.php:
Undefined variable: categories (View: /home/laravel-projects/resources/views/user/profile/order/create.blade.php)