【问题标题】:Make category and Subcategory in laravel在 laravel 中创建类别和子类别
【发布时间】:2021-06-27 21:04:53
【问题描述】:

我为制作类别创建了一个表单,并在同一页面上以表格的形式显示类别。在每个类别前面都有一个添加按钮来添加子类别。我想显示一个具有子类别表单的模式。

我无法添加子类别。当我单击提交时,提交的详细信息以原始形式显示,并且每次只选择 Id 1

控制器

 public function subcat(Request $request, $id)
    {       

            $data = new SubCategories();
            $data->name = $request->input('name');
            $data->categories_id=$id;

            if($request->hasfile('image')){

                $file = $request->file('image');
                $extension = $file->getClientOriginalExtension();
                $filename = time().'.'.$extension;
                $file->move('uploads/subcategory/',$filename);
                $data->image = $filename;
            }else{
                return $request;
                $data->image = '';
            }
            
            $data->save();
            return redirect('/admin/addCategory')->with('Success', 'SubCategory Added');

    }

刀片

@extends('admin.master');

@section('content');
        <div class="content-wrapper">
          <div class="row">
            <div class="container">
              <form action="{{route('store')}}" method="POST">
                {{csrf_field()}}
                <label for="cat_name">Category Name</label>
                <input type="text" name="cat_name" class="form-control">
                <button type="submit" class="btn btn-success">Submit</button>
              </form>
            </div>
          </div>
          <div class="row">
            <div class="container">
            <table class="table table-dark">
              <tr>
                <thead>
                  <th>ID</th>
                  <th>Category</th>
                  <th>AddSubCategory</th>
                </thead>
              </tr>
              <tbody>
                @foreach($category as $col)
                <tr>
                 <td>{{$col->id}}</td>
                 <td>{{$col->cat_name}}</td>
                 <td><a class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" href="/admin/category/{{$col->id}}">Add</a></td>
                </tr>
                @endforeach
              </tbody>
            </table>
          </div>
        </div>
       

        <!-- Modal -->
        <div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
          <div class="modal-dialog" role="document">
            <div class="modal-content">
              <div class="modal-header">
                <h5 class="modal-title" id="exampleModalLabel">Add SubCategory</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                  <span aria-hidden="true">&times;</span>
                </button>
              </div>
              <div class="modal-body">
                <form action="{{route('storeSub',[$category[0]->id])}}" method="POST">
                  {{csrf_field()}}
                  <label for="name">SubCategory</label>
                  <input type="text" name="name" class="form-control">
                  <label for="image">Image</label>
                  <input type="file" name="image" class="form-control">
                  <button type="submit" class="btn btn-primary">Save changes</button>
                </form>
              </div>
              <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
                
              </div>
            </div>
          </div>
        </div>
      </div>
@endsection
 

路线

Route::prefix('/admin')->group(  function()  {
Route::get('/addCategory','\App\Http\Controllers\AdminController@index');
Route::post('/storecat','\App\Http\Controllers\AdminController@categories')->name('store');
Route::get('/addCategory','\App\Http\Controllers\AdminController@show');
Route::post('/category/{id}','\App\Http\Controllers\AdminController@subcat')->name('storeSub');

});

【问题讨论】:

  • 您缺少 javascript 方面。当您单击添加按钮时,模式应该打开,然后在该模式上执行您想要的操作。我认为你应该在 laravel 端之前先了解基本的交互式表单处理:)

标签: php laravel


【解决方案1】:

您可能没有访问文件,因此 else 语句是您所在的路径。因为这条线

else{ 
  return $request; // Remove This
  ...

到那时一切都停止了,你正在返回 Laravel 自动转换为 JSON 的原始表单请求数据。您需要删除该行,以便您的方法的其余部分继续处理。

【讨论】:

  • 谢谢你的帮助
【解决方案2】:

因为您的模态不在foreach 中。

模态表单上的action="{{route('storeSub',[$category[0]-&gt;id])}}" 无法处理上述表格的值。

尝试将模态区域移动到 foreach 或使用 javascript 动态更改模态值。

每次获取类别 id = 1 的原因是,因为您提交的是模态表单操作,例如

$category[0]->id

这意味着每次发送类别 id = 1

所以解决方案应该在你的刀片文件中接近这个;

@extends('admin.master');

@section('content');
        <div class="content-wrapper">
          <div class="row">
            <div class="container">
              <form action="{{route('store')}}" method="POST">
                {{csrf_field()}}
                <label for="cat_name">Category Name</label>
                <input type="text" name="cat_name" class="form-control">
                <button type="submit" class="btn btn-success">Submit</button>
              </form>
            </div>
          </div>
          <div class="row">
            <div class="container">
            <table class="table table-dark">
              <tr>
                <thead>
                  <th>ID</th>
                  <th>Category</th>
                  <th>AddSubCategory</th>
                </thead>
              </tr>
              <tbody>
                @foreach($category as $col)
                <tr>
                 <td>{{$col->id}}</td>
                 <td>{{$col->cat_name}}</td>
                 <td><a class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" href="/admin/category/{{$col->id}}">Add</a></td>
                </tr>

        <!-- Modal -->
        <div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
          <div class="modal-dialog" role="document">
            <div class="modal-content">
              <div class="modal-header">
                <h5 class="modal-title" id="exampleModalLabel">Add SubCategory</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                  <span aria-hidden="true">&times;</span>
                </button>
              </div>
              <div class="modal-body">
                <form action="{{route('storeSub',[$col->id])}}" method="POST">
                  {{csrf_field()}}
                  <label for="name">SubCategory</label>
                  <input type="text" name="name" class="form-control">
                  <label for="image">Image</label>
                  <input type="file" name="image" class="form-control">
                  <button type="submit" class="btn btn-primary">Save changes</button>
                </form>
              </div>
              <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
                
              </div>
            </div>
          </div>
                @endforeach
              </tbody>
            </table>
          </div>
        </div>
       
        </div>
      </div>
@endsection

【讨论】:

  • 是的,我也这样做了,但仍然只使用类别 id = 1
  • @SSinha 你确定吗?你改变了
    部分吗?
  • 是的,我也是这样做的
【解决方案3】:

问题可能出在您操作模态类的 javascript 文件中。请提供有关相关脚本的更多信息。

【讨论】:

  • 我没有任何 JavaScript 脚本
猜你喜欢
  • 1970-01-01
  • 2019-01-17
  • 2017-05-26
  • 2016-10-12
  • 2017-09-05
  • 2014-08-30
  • 2018-12-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多