にCodeIgniterのクエリを変換する私はCodeIgniterのLaravelクエリ
$html = array();
$sqltourtypes = 'SELECT * FROM tourtypes ORDER BY nTourTypeID ASC';
$sqltours = 'SELECT * FROM tours WHERE nTourTypeID = ? ORDER BY _kpnID ASC';
$tourtypes = $this->db->query($sqltourtypes)->result();
for($i = 0; $i < count($tourtypes); $i++){
$html[] = '<li><a href="#">'.$tourtypes[$i]->_kftDescription.'</a>';
$tours = $this->db->query($sqltours,array($tourtypes[$i]->nTourTypeID))->result();
if(count($tours)>0){
$html[] = '<ul>';
for($ia = 0; $ia < count($tours); $ia++){
$html[] = '<li>'.$tours[$ia]->tDescription.'</li>';
}
$html[] ='</ul></li>';
}else {
$html[] = '</li>';
}
}
return implode('',$html);
に次のコードを持っている私は最近、Laravelフレームワークに切り替える必要がありました。私はLaravelで質問をすることができませんでした。基本的に私は2つのテーブル、ツアータイプとツアーを持っています。 _kftDescriptionはulタグの下のツアータイプをリストするのに使用され、tDescriptionは特定のグループのツアー名をliタグとしてリストするために使用されます。
クエリを変換しようとすると、常にエラーが発生します。誰も私のコードをCodeIgniterから実装する方法を提案できますか? nTourTypeIDが "1"の場合、ツアータイプ "クルーズ"に属します。希望は理にかなっています。
更新:マイアプリ\のHttp \コントローラ\ BookingsController.phpファイルは、予約のため、この
namespace App\Http\Controllers;
use App\Models\Bookings;
use Illuminate\Http\Request;
use Illuminate\Pagination\LengthAwarePaginator as Paginator;
use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Controller;
use Validator, Input, Redirect ;
class BookingsController extends Controller {
public function index()
{
$tourTypes = collect(DB::table('tourtypes')->orderBy('nTourTypeID')->get())
->map(function ($item) {
$item->tours = DB::table('tours')->where('nTourTypeID', $item->nTourTypeID)->get();
return $item;
});
return view('bookings', compact('tourTypes'));
}
とルートのように見えますが、このようになります(私のルートは私にはないの予約ですルートツアーを持っている):
Route::get('bookings','[email protected]');
最後に\ resources \ views \ bookingings \ index.blade.phpファイルはthのように見えます次のとおりです。
@extends('layouts.app')
@section('content')
{{--*/ usort($tableGrid, "SiteHelpers::_sort") /*--}}
@if(count($tourTypes))
<ul>
@foreach($tourTypes as $tourType)
<li>
<a href="#">{{ $tourType->_kftDescription }}</a>
@if(count($tourType->tours))
<ul>
@foreach($tourType->tours as $tour)
<li>{{ $tour->tDescription }}</li>
@endforeach
</ul>
@endif
</li>
@endforeach
</ul>
@endif
私はまだエラー
未定義の変数を取得:tourTypes(閲覧: D:XAMPP \ htdocsに\を\リソース\予約\予約\ビュー\ index.blade.php)
を
私は
$tourTypes = DB::table('tourtypes')->orderBy('nTourTypeID', 'ASC')->get();
print_r($tourTypes);
プリントを書く
を照らし\サポート\コレクションオブジェクト([アイテム:保護] =>アレイ( [0] =>はstdClassオブジェクト([nTourTypeID] => 1 [_kftDescription] => クルーズ[_kftColourID] => 003399 )1 =>はstdClassオブジェクト( [nTourTypeID] => 2 [_kftDescription] => 4WD [_kftColourID] =>)[2] => はstdClassオブジェクト([nTourTypeID] => 3 [_kftDescription] =>パールファーム [ _kftColourID] => 00ccff)
したがって、クエリは機能していますが、ulタグとliタグを使用して値を出力することはできません。
@if(count($tourTypes))
<ul>
@foreach($tourTypes as $tourType)
<li>
<a href="#">{{ $tourType->_kftDescription }}</a>
@if(count($tourType->tours))
<ul>
@foreach($tourType->tours as $tour)
<li>{{ $tour->tDescription }}</li>
@endforeach
</ul>
@endif
</li>
@endforeach
</ul>
@endif
どのようなエラーが表示されますか?エラーメッセージはありますか?もしそうなら、それは何を言いますか? – waka
最初に 'Undefinedプロパティ:Illuminate \ View \ Engines \ CompilerEngine :: $ db(ビュー:C:\ XAMPP \ htdocs \予約\リソース\ビュー\予約\インデックス.blad e.php) $ this-> db-> query($ sqltourtypes) - > result(); '$ tourtypes = DB :: table( 'tours') - > get();'これでエラーが発生しました: 'ErrorException in e1cff7d5e9e0d2f02a08975fab510e441de69bc5.php 39行目:定義されていないプロパティ:stdClass :: $ _ kftDescription'単なる無限のさまざまなエラー。 https://laravel.com/docs/4.2/queriesを参照しましたが、クエリを実行できません – hijacker83
指定されたツールを使用しない場合、なぜフレームワークを使用するのですか?ララベルの適切な方法は、モデルと関係を定義することです。コントローラコードははるかに簡単です。 HTMLコードはテンプレートに移動する必要があります。 –