我想创建一个从数据库加载数据的下拉菜单。我想从ID
表中创建键和数据为BookName
和books
的下拉列表。我遵循了https://www.youtube.com/watch?v=G_cMkETK330
我遵循的步骤。
//created model
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class AppDropdown extends Model
{
protected $table = 'books';
}
然后创建了提供程序
//created provider
<?php
namespace App\Providers;
use App\AppDropdown; // write model name here
use Illuminate\Support\ServiceProvider;
class DynamicDDServiceProvider extends ServiceProvider
{
public function boot()
{
view()->composer('*',function($view){
$view->with('arrayname', AppDropdown::all());
});
}
}
然后将提供者在config/app.php
中注册为App\Providers\DynamicDDServiceProvider::class
现在在我的查看页面中,
<select name="sel_bookID" id="sel_bookID" >
@foreach ($arrayname as $data)
<option value="{{ $data->id }}">{{ $data->BookID }}</option>
@endforeach
</select>
但是我收到错误消息:::
Illuminate \ Database \ QueryException (42S02)
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'lsapp.app_dropdowns' doesn't exist (SQL: select * from `app_dropdowns`)
SQL查询如何将app_dropdowns
创建为表?在模型中,我已将表名称提到为books
。
答案 0 :(得分:0)
您无需创建提供程序,只需创建一个名为“ Book.php”的模型,然后使用类似于Book :: all();的模型来获取控制器中的所有数据;并将其传递给视图。现在视图中用于循环并显示数据
在控制器中
use App\Book; //import model
$books = Book::all();
return view('viewName',compact('books')); //compact method is used to
pass data in view.
在查看文件中
<select class="form-control" id="select">
@foreach($books as $book)
<option>{{$book->id}}</option>
@endforeach
</select>