使用 laravel 获取数据时未定义的变量结果
Undefined variable result while fetching data using laravel
我是 laravel 5 的新手 现在我在这里做什么 我只想从数据库 table states
country_id='101'
中获取数据。并在我的视图文件中应用 foreach
循环,但它显示错误,即 undefined variable: result
。我不知道为什么以及哪里做错了?请帮助我。
app/http/controller/FirstController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use DB;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class FirstController extends Controller
{
public function state()
{
$sql = DB::select('select * from states where country_id="101"');
return view('index',['result'=>$sql]);
}
}
resources/views/index.blade.php
<select name="state" class="form-control" id="state">
<option value="null">India:State</option>
@foreach($result as $row)
<option value="{{ $row->id }}">{{ $row->name }}</option>
@endforeach
</select>
routes/web.php
<?php
Route::get('/', function () {
return view('index');
});
Route::get('index','FirstController@state');
这条路线
Route::get('/', function () {
return view('index');
});
您在调用视图 index
时没有任何 result
变量,这会导致您出现此错误
如果没有result
,首先你决定你想要什么,然后相应地做,为了处理错误你可以使用$result ?? []
@foreach($result ?? [] as $row)
如果你想从两个不同的 url /
和 /index
调用相同的方法,那么使用下面的路由
Route::get('/','FirstController@state');
Route::get('index','FirstController@state');
同时更改您的查询构建器,使其看起来更 laravel 风格。
public function state()
{
$sql = DB::table('states')->where('country_id',101)->get();
return view('index',['result'=>$sql]);
}
我是 laravel 5 的新手 现在我在这里做什么 我只想从数据库 table states
country_id='101'
中获取数据。并在我的视图文件中应用 foreach
循环,但它显示错误,即 undefined variable: result
。我不知道为什么以及哪里做错了?请帮助我。
app/http/controller/FirstController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use DB;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class FirstController extends Controller
{
public function state()
{
$sql = DB::select('select * from states where country_id="101"');
return view('index',['result'=>$sql]);
}
}
resources/views/index.blade.php
<select name="state" class="form-control" id="state">
<option value="null">India:State</option>
@foreach($result as $row)
<option value="{{ $row->id }}">{{ $row->name }}</option>
@endforeach
</select>
routes/web.php
<?php
Route::get('/', function () {
return view('index');
});
Route::get('index','FirstController@state');
这条路线
Route::get('/', function () {
return view('index');
});
您在调用视图 index
时没有任何 result
变量,这会导致您出现此错误
如果没有result
,首先你决定你想要什么,然后相应地做,为了处理错误你可以使用$result ?? []
@foreach($result ?? [] as $row)
如果你想从两个不同的 url /
和 /index
调用相同的方法,那么使用下面的路由
Route::get('/','FirstController@state');
Route::get('index','FirstController@state');
同时更改您的查询构建器,使其看起来更 laravel 风格。
public function state()
{
$sql = DB::table('states')->where('country_id',101)->get();
return view('index',['result'=>$sql]);
}