尝试在 null 上分配 属性 "parent_id"

Attempt to assign property "parent_id" on null

我想用这些代码将数据保存到 mySql table

category.blade.php

 <form name="categoryForm" id="categoryForm" action="{{url('admin/add-edit-category')}}" method="post" enctype="multipart/form-data">
            @csrf

            <div class="form-group">
                <label>Select Category Level</label>
                <select name="parent_id" id="parent_id" class="form-control select2" style="width: 100%;">
                    <option value="0">Main Category</option>
                </select>
            </div>

           <div class="card-footer">
                    <button type="submit" class="btn btn-primary">Submit</button>
            </div>
    </form>

CategoryController.php

<?php

namespace App\Http\Controllers\admin;

use App\Category;
use App\Section;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Session;

class CategoryController extends Controller
{
public function addEditCategory(Request $request, $id = null)
{

    if ($id = "") {
        $title = "Add Category";
        // Add category functionality

        //if id is not get it will create a new 
        $category = new Category();
    } else {
        $title = "Edit Category";
        // Edit category functionality
    }

    //checking form data is comming or not?
    if ($request->isMethod('post')) {
        $data = $request->all();
        // echo "<pre>";
        // print_r($data);
        // die;


        $category->parent_id = $data['parent_id'];
       
        $category->save();
    }

    // Get All the Sections
    $getSections = Section::get();
    return view('admin.categories.add-edit-category')->with(compact('title', 'getSections'));
}
}

但是当我在 addEditCategory 视图中按下提交按钮时,给我 尝试在 null 上分配 属性 "parent_id" 我该如何解决这个问题?

如果您使用的是laravel => 5.3,请尝试此方法

<?php

namespace App\Http\Controllers\admin;

use App\Category;
use App\Section;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Session;

class CategoryController extends Controller
{
public function addEditCategory(Request $request, $id = null)
{

 
   if ($id = "") {
       $title = "Add Category";
       // Add category functionality

    
   } else {
      $title = "Edit Category";
      // Edit category functionality
   }
 
    if ($request->isMethod('post')) {
      
        $parent_id = $request->get("parent_id");

           $category = Category::updateOrCreate([
               "parent_id" => $parent_id 
           ], [
               "parent_id" => $parent_id 
           ]);
    }

    // Get All the Sections
    $getSections = Section::get();
    return view('admin.categories.add-edit-category')->with(compact('title', 'getSections'));
}
}

我在CategoryController.php中犯了一个错误。不幸的是,我放了一个“=”而不是两个“==”。检查 id 是否等于空。 现已更新

CategoryController.php

class CategoryController extends Controller
{
public function addEditCategory(Request $request, $id = null)
{
   if ($id == "") {
       $title = "Add Category";
       // Add category functionality     
   } else {
      $title = "Edit Category";
      // Edit category functionality
   }
 
    if ($request->isMethod('post')) {
      
        $parent_id = $request->get("parent_id");

           $category = Category::updateOrCreate([
               "parent_id" => $parent_id 
           ], [
               "parent_id" => $parent_id 
           ]);
    }

    // Get All the Sections
    $getSections = Section::get();
    return view('admin.categories.add-edit-category')->with(compact('title', 'getSections'));
}
}