#php #laravel
#php #laravel
Вопрос:
Я новичок в laravel и шаблоне sb-admin. Я надеюсь, что кто-нибудь сможет помочь мне с моей проблемой. Я хочу отобразить в теге select данные из моей таблицы базы данных, но он показывает только эту ошибку
Исключение ошибки (E_ERROR) Неопределенная переменная: kras (Вид: C:UsersICTOfficeDesktopsbmMearesourcesviewsadminAIPcreate.blade.php )
это мой код модели Kra
namespace App;
use IlluminateDatabaseEloquentModel;
class Kra extends Model
{
protected $fillable =['id',`KRADetail`];
}
Krascontroller содержит,
public function index()
{
$kras=Kras::all();
return view('admin.AIPcreate',compact('kras'));
}
в моем блейд-файле я использую этот код для отображения данных
AIPcreate.blade.php
<th colspan="6">Key Result Areas: <select class="btn btn-block btn-default">
<option class="dropdown-header">Select Key Result Area</option>
@foreach($kras as $kras)
<option value="{{$kras->id}}">{{$kras->KRADetail}}</option>
@endforeach
</select></th>
и мой маршрут выглядел так,
Route::get('/admin/{demopage?}', 'DemoController@demo')->name('demo');
route::resource('Kras','KrasController');
Я немного запутался, что использовать при вызове блейд-файла, поскольку он уже объявлен в demopage. вот почему я добавил маршрут для Kras, в котором я не совсем уверен. пожалуйста, помогите, и заранее благодарю вас
Ответ №1:
Попробуйте это
public function index()
{
$kras=Kra::all();
return view('admin.AIPcreate',compact('kras'));
}
Ответ №2:
попробуйте отправить данные, как показано ниже:
public function index()
{
$kras=Kras::all();
return view('admin.AIPcreate',['kras'=>$kras]);
}
и в цикле foreach :
@foreach($kras as $kra)
<option value="{{$kra->id}}">{{$kra->KRADetail}}</option>
@endforeach
Комментарии:
1. это не работает. Я пробовал этот код, но получаю это Исключение ErrorException (E_ERROR) Неопределенная переменная: kras (Вид: C:UsersICTOfficeDesktopsbmMearesourcesviewsadminAIPcreate.blade.php)
Ответ №3:
Попробуйте с этим
Приложение пространства имен кода модели Kra;
используйте Illuminate Database Eloquent Model;
class Kra extends Model
{
protected $fillable =['id',`KRADetail`];
protected $table = 'table_name;
}
Krascontroller
public function index()
{
$kras=Kra::all();
return view('admin.AIPcreate',compact('kras'));
}
admin/AIPcreate.blade.php
<th colspan="6"> Key Result Areas:
<select class="btn btn-block btn-default">
<option class="dropdown-header">Select Key Result Area</option>
@foreach($kras as $kra)
<option value="{{$kra->id}}">{{$kra->KRADetail}}</option>
@endforeach
</select>
</th>
Поскольку оба ваших имени переменных одинаковы, поэтому он рассматривает их как несколько значений.
Здесь вы ошибочно принимаете Kras
вместо Kra
. Проверьте имя класса вашей модели.
Комментарии:
1. спасибо за ответ. однако у меня все та же ошибка.
2. Исключение ошибки (E_ERROR) Неопределенная переменная: kra (Вид: C:UsersICTOfficeDesktopsbmMearesourcesviewsadminAIPcreate.blade.php )
3.
dd
в вашемindex
методе проверьте, получаете вы коллекцию или нет4. Я не получаю никаких коллекций. Исключение ошибки (E_ERROR) Неопределенная переменная: kras (Вид: C:UsersICTOfficeDesktopsbmMearesourcesviewsadminAIPcreate.blade.php)
5.
public function index() { $kras=Kras::all();dd($kras); return view('admin.AIPcreate',compact('kras')); }
попробуйте это