Преобразование массива Laravel 8 в строку

#php #laravel #laravel-8 #string-conversion

Вопрос:

Я пытаюсь получить данные из таблицы единиц измерения, но получаю ошибку:

Преобразование массива в строку

Модельный Блок

 <?php

namespace AppModels;

use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateDatabaseEloquentModel;

use GoldSpecDigitalLaravelEloquentUUIDDatabaseEloquentUuid;

class Unit extends Model
{
    use HasFactory;
    use Uuid;
    
    /**
     * The "type" of the auto-incrementing ID.
     *
     * @var string
     */
    protected $keyType = 'string';
    
    /**
     * Indicates if the IDs are auto-incrementing.
     *
     * @var bool
     */
    public $incrementing = false;
    
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $guarded = [];
   
    public function getKeyType()
    {
        return 'string';
    }
    
    public function __construct($table_name){
        
        $this->setTable($table_name.'_units');

    }
    public function building()
    {
        return $this->belongsTo(Building::class);
    }
}
 

Контроллер

table_name_prefix-это время unix 1623748840

 public function show($id)
    {
        $building = Building::find($id);
        if($building == NULL){
            return response()->json(['message' => 'Building not exists'], 400);
        }

         
        $table_name_prefix = $building->stage->complex->table_name_prefix;

        if (Schema::hasTable($table_name_prefix.'_units')) {
            $units_table = new Unit($table_name_prefix);
            $units_table->where('status', 'Liber')->get();

            return view('buildings.show')->with('building', $building)->with('units', $units);
        }else{
            return view('buildings.show')->with('building', $building);
        }
    }
 

Пожалуйста, помогите мне найти проблему. Следующий код работает:

 $unit = new Unit($table_name_prefix);
...
$unit->save();
 

следующая часть модели содержит ошибку: преобразование массива в строку

 $this->setTable($table_name.'_units');
 

Спасибо

P.S. Я добавил скриншоты ошибки

Снимок экрана с ошибкой модели
Скриншот ошибки контроллера

Комментарии:

1. Какая часть не работает?

2. также вы можете показать полный код модели, а также код метода контроллера

3. Я обновил сообщение для вашего вопроса

4. ответ для dd($имя_таблицы); является строкой «1623748840»

5. можете ли вы сказать нам, какую строку выдает эта ошибка ?или еще немного сложно догадаться. это в блейде ?