他の関数内で関数を呼び出す方法を理解できません。 下のスニペットは意味がありますか?他の関数内で関数を呼び出す
public function createcat()
{
$kat_id = kategorijas::find('id');
$apakskat = apakskategorijas::where('kategorijas_id','=',$kat_id)->get();
$kat = kategorijas::with('apakskategorija')->get();
//$list = compact('kat','apakskat','apakskat_count');
}
public function mainpage()
{
// $kat_id = kategorijas::find('id');
// $apakskat = apakskategorijas::where('kategorijas_id','=',$kat_id)->get();
// $kat = kategorijas::with('apakskategorija')->get();
$list = $this->createcat();
return view ('views.home',compact('list'));
}
事は、それ以外の場合はcreatecat
関数内の変数を持っていません表示エラーを示し、他のビューを正しく動作させるにcreatecat
機能を必要とすること、です。
これは良い方法ですか?あるいは、createcat
関数を別の場所で作成して特定の場所から呼び出す必要がありますか?
UPDATE
だから私はこの通り抜けた - Laravel 5 - Where to define functions and call them in views & controllersと、それらのDB機能のための他のクラスを作成しました。 これで終わりました。私は
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Database\Eloquent\Model;
use DB;
use App\Quotation;
use App\kategorijas;
use App\apakskategorijas;
class katcontroller extends Controller
{
public static function createcat()
{
$kat_id = kategorijas::find('id');
$apakskat = apakskategorijas::where('kategorijas_id','=',$kat_id)->get();
$kat = kategorijas::with('apakskategorija')->get();
return compact('kat','apakskat','apakskat_count');
}
}
を使用したいそして今、私はそれがショーまだ
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Database\Eloquent\Model;
use DB;
use App\Http\Controllers\katcontroller;
class routes extends katcontroller
{
// public function createcat()
// {
// $kat_id = kategorijas::find('id');
// $apakskat = apakskategorijas::where('kategorijas_id','=',$kat_id)->get();
// $kat = kategorijas::with('apakskategorija')->get();
// $list = compact('kat','apakskat','apakskat_count');
// }
public function mainpage()
{
// $kat_id = kategorijas::find('id');
// $apakskat = apakskategorijas::where('kategorijas_id','=',$kat_id)->get();
// $kat = kategorijas::with('apakskategorija')->get();
$function = $this->createcat();
return view ('views.home',compact('function'));
}
私secoundクラス項目にcreatecat関数を呼び出すために試してみたい主な機能を保持している
コントローラ私は同じエラー、createcat関数からの変数は未定義です。
ただput model_name :: function_name;例User :: try1($ test); –
他の場所からアクセスできる機能については、https://stackoverflow.com/questions/28781073/laravel-5-where-to-define-functions-and-call-them-in-views-controllers – Spikolynn
@ Spikolynn私はこの記事を読んだが、それでもエラーを示している。 – Rhercb