Ошибка Arcanedev \ LaravelNestedSet \ NodeTrait appendToNode () - PullRequest
0 голосов
/ 27 января 2020

Я впервые использую вложенный набор с arcanedev / laravel -nestedset .
Я следую учебнику и соответствующим образом настраиваю свою модель. Но когда я вызываю метод create, он выдает следующую ошибку:

Symfony \ Component \ Debug \ Exception \ FatalThrowableError, выдаваемый с сообщением "Аргумент 1 передан в App \ Models \ AmazonCategoryIndices :: appendToNode ( ) должен быть экземпляром Arcanedev \ LaravelNestedSet \ Contracts \ Nodeable, заданным экземпляром App \ Models \ AmazonCategoryIndices, который вызывается в E: \ TestProjects \ pld-v4-admin \ vendor \ arcanedev \ laravel -nestedset \ src \ NodeTrait. php в строке 1074 ".

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

Вот моя модель

=== ===============================

namespace App\Models;
use Arcanedev\LaravelNestedSet\NodeTrait;
use Illuminate\Database\Eloquent\Model;
class AmazonCategoryIndices extends Model
{
   protected $table = 'amazon_category_indices';
   protected $guarded = [];   
   use NodeTrait;
}

========== ========================

foreach ($shops as $key => $value) {
  AmazonCategoryIndices::create($value);
}

1 Ответ

0 голосов
/ 27 января 2020

На основании сообщения об ошибке параметр, переданный в App\Models\AmazonCategoryIndices::appendToNode(), является экземпляром App\Models\AmazonCategoryIndices, в то время как он ожидает экземпляр Arcanedev\LaravelNestedSet\Contracts\Nodeable

Итак, добавление контракта Arcanedev\LaravelNestedSet\Contracts\Nodeable в вашей модели должно разрешите свою ошибку.


namespace App\Models;

use Arcanedev\LaravelNestedSet\NodeTrait;
use Illuminate\Database\Eloquent\Model;
use Arcanedev\LaravelNestedSet\Contracts\Nodeable;

class AmazonCategoryIndices extends Model implements Nodeable
{
   protected $table = 'amazon_category_indices';
   protected $guarded = [];   
   use NodeTrait;
}

Когда вы сказали: Пакет "ARCANEDEV / LaravelNestedSet" использует "lazychaser / laravel -nestedset" на своем бэкэнде.

. ..Это не. Это два разных пакета и они не работают одинаково. Arcanedev заслужил благодарность lazychaser за свою работу, в которой он, вероятно, использовал много ресурсов.
Теперь уже сказано, что я бы не рекомендовал использовать пакет arcanedev, поскольку он, похоже, не поддерживается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...