控制器中的条件 laravel

Condition in controller laravel

我的 Laravel 控制器中有这段代码

public function index($id=false) {
    //get resto by name
    $resto_nom = DB::table('restos as r')
        ->JOIN('produit as p', 'p.r_id', '=', 'r.r_id')
        ->JOIN('categorie as c', 'c.ca_id', '=', 'p.ca_id')
        ->WHERE('r.r_nom', $id)
        ->WHERE('p.po_etat', 1)
        ->get();

    foreach ($resto_nom as $r):
        $r_nom = $r->r_nom;
        $r_description = $r->r_description;
        $r_specialite = $r->r_specialite;
        $meta = $r_nom.', '.$r_specialite.", restaurant NosRepas, repas";
        $description = $r_nom.' - '.$r_specialite.'. '.$r_description;
    endforeach;

    if($id != $r_nom){
        return view('frontend.pages.resto', compact('meta', 'description', 'resto_nom'));
    }else{
        return view('frontend.pages.resto', compact('meta', 'description', 'resto_nom'));
    }
}

我在 Undefined variable: r_nom 之后出现错误 我的目标是显示找到的值是否正确,因此查看显示并因此不正确 returns 404 未找到。

您必须在foreach之前设置变量,否则它只能在循环内使用。试试这个:

$r_nom = null;
foreach ($resto_nom as $r):
    $r_nom = $r->r_nom;
    $r_description = $r->r_description;
    $r_specialite = $r->r_specialite;

    $meta = $r_nom.', '.$r_specialite.", restaurant NosRepas, repas";
    $description = $r_nom.' - '.$r_specialite.'. '.$r_description;
endforeach;