Невозможно вставить данные в laravel - PullRequest
0 голосов
/ 20 октября 2019

Я новичок в laravel, я хочу вставить данные в Laravel, для этого я написал следующий код, но данные не вставлены в базу данных, и нет ошибок. Мой код выглядит следующим образом, я создал модель, представление, контроллер для этого.

Контроллер: Category.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Http\Response;
use App\Model\Category;
class Categories extends Controller
{
    public function create()
    {
        return view('pages.addCategories');
    }

    public function store(Request $request)
    {
        $validatedData = $request->validate([
            'name' => 'required',
        ]);

       Category::create($request->all());

        return redirect('admin/categories');

    }
} 

Categories_table:

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateCategoriesTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('categories', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('name');
            $table->unsignedInteger('parent_id')->nullable();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('categories');
    }
}

Вид:

<form action="/admin/add-categories" method="post" role="form">
              {{ csrf_field() }}
                <div class="card-body">
                  <div class="form-group">
                    <label for="exampleInputEmail1">Category Name</label>
                    <input type="text" class="form-control" name="name" placeholder="Enter Category">
                  </div>
  <div class="card-footer">
                  <button type="submit" class="btn btn-primary">Submit</button>
                </div>
              </form>

Модель Категория:

<?php

namespace App;
namespace App\Model;
use DB;
use Illuminate\Database\Eloquent\Model;

class Category extends Model
{
    protected $fillable = [
        'name'
    ];

    public function subcategory(){
        return $this->hasMany('App\Category', 'parent_id');
    }
}

веб. php

 Route::get('admin/categories', 'Categories@create');
    Route::post('admin/add-categories', 'Categories@store');

1 Ответ

0 голосов
/ 20 октября 2019

В вашей Category модели вы можете иметь только одно пространство имен.

Поэтому, если файл находится в пределах app\Model\, используйте только это:

namespace App\Model;

и удалите

namespace App;

Тогда в контроллере вы можете сделать это вместо:

$validatedData = $request->validate([
            'name' => 'required',
        ]);

Category::create($validatedData);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...