Отношение модели hasMany возвращает пустой массив. lLaravel Framework 5.5.40 - PullRequest
0 голосов
/ 04 июля 2018

Это моя первая публикация здесь, извините, если я ввел что-то неправильно. Итак, у меня есть Forums.php

 <?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Forums extends Model
{
    protected $table ='forums';
    public $primaryKey='id';

    public function section()
    {
       return $this->belongsTo(Section::class,'id');

   }

}

и Section.php

    <?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Section extends Model
{


    public function forums()
    {
        return $this->hasmany(Forums::class,'section_id');

   }


}

Я последовал учебник, в котором было показано, что с использованием

$section=Section::find($id)->forums;

я должен получить все форумы с fk, равным $ id секции, однако ir возвращает пустой массив. Я попытался вывести SQL в терминале, используя:

$order = App\Section::find(2)->forums()->toSql()

где 2 - идентификатор таблицы разделов и получено:

select * from `forums` where `forums`.`section_id` is null and `forums`.`section_id` is not
null"

поэтому неудивительно, что он возвращает пустой массив однако, если я пытаюсь получить раздел, связанный с форумом, он работает отлично.

Как я могу это исправить?

Изменение hasmady на hasMany это не исправило

<?php

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

class CreatePostsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('Forums', function (Blueprint $table) {
            $table->increments('id');
            $table->string('Name');
            $table->string('Description');
            $table->integer('topics');
            $table->integer('Comments');
            $table->integer('Last_Post_id');
            $table->timestamps();
        });
    }

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

<?php

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

class AddToUsers extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('Forums', function (Blueprint $table)
        {
            $table->integer('Section_id');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        //
    }
}

не может найти разделы shema, хотя у меня есть таблица в базе данных или потому, что shema отсутствует в папке проекта, потому что я не получаю ошибок, что таблица или столбец не может быть найден?

...