#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. можете ли вы сказать нам, какую строку выдает эта ошибка ?или еще немного сложно догадаться. это в блейде ?