I had an issue with passing data from mySql database to my view blade.
I have car_categories blade create which it's using Form:text to input it to Database, and how can I get the data to my car view using Form:select ?
Here's my car create blade code :
{!! Form::model($obj, [
'url' => $route,
'method' => $method,
'id' => 'carCreate',
]) !!}
<div class="table-responsive">
<table class="table table-bordered" id="datatable" style="width: 100%">
<thead>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Car Category:</strong>
{!! Form::select('car_category_id', null, array('class' => 'form-control')) !!}
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12 text-center">
<button type="submit" class="btn btn-primary" >Submit</button>
{!! Form::close() !!}
</div>
</thead>
</table>
and here's my CarController Code :
<?php
namespace App\Http\Controllers;
use App\Http\Requests;
use App\Models\Car;
use App\Helpers\Enums\CarStatus;
use Illuminate\Http\Request;
use Yajra\Datatables\Datatables;
use App\Http\Controllers\Base\MasterController;
use Route;
use Illuminate\View\View;
class CarController extends MasterController
{
protected $indexView = 'car.index';
protected $createView = 'car.create';
protected $editView = 'car.create';
protected $routeBindModel = 'car'; //Route Model Binding name in RouteServiceProvider
protected $redirectPageWhenFormSuccess = 'car.index'; //Route Name
protected $title = 'car';
public function save(Request $request, $obj = null) {
if (!$obj) {
$obj = new Car;
}
return $this->saveHandler($request, $obj);
}
//Must have this method if need datatable;
public function datatableBuilder($obj = null) {
return Car::query();
}
public function makeDatatable($obj) {
return Datatables::of($obj)
->addColumn('action', function ($model) {
return $this->makeActionButtonsForDatatable($model);
})
->editColumn('status', function($model){
return CarStatus::getString($model->gender);
})
->make(true);
}
public function render(View $view, $route = null, $obj = null, $method = 'POST') {
$statusList = CarStatus::getArray();
$view->with(compact('statusList'));
return parent::render($view, $route, $obj, $method);
}
}
and here's my MasterController code:
<?php
namespace App\Http\Controllers\Base;
use Illuminate\Http\Request;
use App\Helpers\Traits\CRUDRenderHelper;
use App\Http\Controllers\Base\BaseController;
class MasterController extends BaseController
{
use CRUDRenderHelper;
protected $indexView;
protected $formView;
protected $routeBindModel; //Route Model Binding name in RouteServiceProvider
// If the route name is extremely long, please enable property below
// protected $updateFormRouteName = 'someModelName.update'; --> Route Name
// protected $saveFormRouteName = 'someModelName.save'; --> Route Name
// protected $redirectPageWhenFormSuccess = 'dashboard.index'; --> Route Name
public function index()
{
return $this->render(view($this->indexView));
}
public function show($obj)
{
$view = property_exists($this, 'detailView') ? $this->detailView : $this->indexView;
return $this->render(view($view), null, $obj);
}
public function create()
{
$view = property_exists($this, 'createView') ? $this->createView : $this->formView;
$route = $this->getFormRoute();
$this->setAction('New');
$method = 'POST';
return $this->render(view($view), $route);
}
public function edit($obj)
{
$view = property_exists($this, 'editView') ? $this->editView : $this->formView;
$route = $this->getFormRoute($obj);
$this->setAction('Edit');
$method = 'PUT';
return $this->render(view($view), $route, $obj, $method);
}
public function store(Request $request)
{
return $this->save($request);
}
public function update(Request $request, $obj)
{
return $this->save($request, $obj);
}
public function destroy(Request $request, $obj)
{
return $this->delete($request, $obj);
}
public function listDatatable($obj = null) {
$builder = $this->datatableBuilder();
return $this->makeDatatable($builder);
}
}
ex : I have 2 categories car Suv, Luxury, etc in Database. How can I get the value and show it at select list in my view.