В настоящее время я пытаюсь изучить Eloquent ORM, но сначала пытаюсь передать некоторые статические данные в свой контроллер.
Вот фрагмент моего контроллера
SCControler.php
<?php
namespace App\Http\Controllers;
use App\Models\SCModel;
use Illuminate\Http\Request;
class SCControler extends Controller
{
//
public function displaySC(Request $request)
{
$secques = SCModel::all();
return view('auth.user_settings', [
'myname' => 'alexis',
]);
}
}
в приведенном выше коде, как вы можете видеть, я сейчас пытаюсь получить данные через свою модель SCModel:all();, однако на странице user_settings написано, что не определено, хотя в таблице теперь есть данные.
Итак, я попробовал отладить его, если он может передавать статические данные, как вы можете видеть в представлении возврата.
К сожалению, он по-прежнему показывает ошибку, но теперь говорит: Call to undefined method ::displaySC()
Вот моя SModel, я убедился, что строки $table и $fillable внутри массива совпадают в таблице.
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class SCModel extends Model
{
use HasFactory;
protected $table = "sc_tbl";
public $timestamps = false;
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'sc_id',
'sc_desc',
];
}
Я также буду публиковать свои маршруты в своем web.php файле. Поэтому всякий раз, когда я пытаюсь перенаправить прямо на user_settings, я могу получить к нему доступ, поэтому думаю, что этот маршрут работает.
Route::get('/user_settings', [SCModel::class, 'displaySC'])->name('auth.user_settings');
Я был бы очень признателен за любую помощь, которую вы могли бы оказать, чтобы исправить мои ошибки.
просто чтобы дать контекст, это просто для изучения, поэтому, если вы думаете, что база данных или данные связаны с ней, можно удалить/переместить ее в мою базу данных.






Вы используете неправильный класс в своем маршруте. Вы пытаетесь вызвать displaySC на своей модели, хотя вместо этого вам следует вызывать его на своем контроллере.
Так что измени это
Route::get('/user_settings', [SCModel::class, 'displaySC'])->name('auth.user_settings');
К этому
Route::get('/user_settings', [SCControler::class, 'displaySC'])->name('auth.user_settings');
Вам, вероятно, также придется изменить использование в верхней части файла маршрутов.