Laravel 5.5 Appelez la fonction de contrôleur de la vue de la lame avec le paramètre

J'ai un curseur de produits et j'essaie de trouver le prix le plus bas de chaque produit.

Par conséquent, j'essaie d'abord d'appeler avec succès la fonction du contrôleur et de transférer
id

Produit, ainsi que l'impression.

blade.php


<span class="text-bold">
@php
use App\Http\Controllers\ServiceProvider;
echo ServiceProvider::getLowestPrice/$product_cat-&gt;id/;
@endphp
</span>


Route


Route::post/'/getLowestPrice/{id}', 'ServiceProvider@getLowestPrice'/;


Manette


php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class ServiceProvider extends Controller
{
public static function getLowestPrice/$id/ {
return $id;
}
}


Et j'ai une erreur


Parse error: syntax error, unexpected 'use' /T_USE/


Il y a des idées pourquoi
use

Ne fonctionne pas ici?
</div
<div class="answer_text">
@Ali, De toute évidence, raison, et je vous suggère de prendre sa réponse.

Cependant, j'aimerais ajouter qu'il y a aussi une directive Service injection, qui a été créé précisément à cette fin et qui est un peu plus propre à utiliser.


@inject/'provider', 'App\Http\Controllers\ServiceProvider'/

<span class="text-bold">
{{ $provider::getLowestPrice/$product_cat-&gt;id/ }}
</span>


Documents:
https://laravel.com/docs/5.5/b ... ction
</div>
<div class="answer_text">
Vous ne pouvez pas utiliser de mot-clé
use

À l'intérieur de la méthode

Vous pouvez écrire un chemin complet de la classe, par exemple, donc


<span class="text-bold">
@php
echo App\Http\Controllers\ServiceProvider::getLowestPrice/$product_cat-&gt;id/;
@endphp
</span>


</div>
<div class="answer_text">

//Create a static type function in your controller.The function must be a static type function.

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;

class ServiceProvider extends Controller
{
public static function getLowestPrice/$val/{
// do your stuff or return something.
}
}

//Then Call the ServiceProvider Controller function from view


//include the controller class.
<?php use App\Http\Controllers\ServiceProvider;?>
//call the controller function in php way with passing args.
<?php echo ServiceProvider::getLowestPrice/$product_cat->id/; ?&gt;
// Or call the controller function in blade way.
{{ServiceProvider::getLowestPrice/$product_cat-&gt;id/}}


</div>
<div class="answer_text">
Il peut être encore plus facile, vous pouvez l'appeler correctement:


<span class="text-bold">
{{App\ServiceProvider::getLowestPrice/$product_cat-&gt;id/}}
</span>


</div>
<div class="answer_text">
Concept simple d'appeler la fonction du contrôleur à partir du type de type:
Par exemple, vous avez un bouton en vue avec href= " ton URL"


<a class="btn btn-primary" href="/user/projects/{id}">Button</a>


Maintenant, définissez la route dans web.php:


Route::get/'/user/projects/{id}', 'user_controller@showProject'/;


La fonction dans le contrôleur correspondant ressemblera à ceci:


public function showProject/$id/{
$post =posts::find/$id/;
return view/'user.show_projects'/-&gt;with/'post', $post/;;
}


J'espère que cela vous aidera.
</div>
Invité:

Gaetan

Confirmation de:

@Ali, De toute évidence, raison, et je vous suggère de prendre sa réponse.

Cependant, j'aimerais ajouter qu'il y a aussi une directive Service injection, qui a été créé précisément à cette fin et qui est un peu plus propre à utiliser.


@inject/'provider', 'App\Http\Controllers\ServiceProvider'/

<span class="text-bold">
{{ $provider::getLowestPrice/$product_cat-&gt;id/ }}
</span>


Documents:
https://laravel.com/docs/5.5/b ... ction

Giselle

Confirmation de:

Vous ne pouvez pas utiliser de mot-clé
use

À l'intérieur de la méthode

Vous pouvez écrire un chemin complet de la classe, par exemple, donc


<span class="text-bold">
@php
echo App\Http\Controllers\ServiceProvider::getLowestPrice/$product_cat-&gt;id/;
@endphp
</span>

Hannah

Confirmation de:

//Create a static type function in your controller.The function must be a static type function.

php
namespace App\Http\Controllers;
use Illuminate\Http\Request;

class ServiceProvider extends Controller
{
public static function getLowestPrice/$val/{
// do your stuff or return something.
}
}

//Then Call the ServiceProvider Controller function from view


//include the controller class.
<?php use App\Http\Controllers\ServiceProvider;?
//call the controller function in php way with passing args.
php echo ServiceProvider::getLowestPrice/$product_cat-id/; ?>
// Or call the controller function in blade way.
{{ServiceProvider::getLowestPrice/$product_cat->id/}}

Gilbert

Confirmation de:

Il peut être encore plus facile, vous pouvez l'appeler correctement:


<span class="text-bold">
{{App\ServiceProvider::getLowestPrice/$product_cat-&gt;id/}}
</span>

Giselle

Confirmation de:

Concept simple d'appeler la fonction du contrôleur à partir du type de type:
Par exemple, vous avez un bouton en vue avec href= " ton URL"


<a class="btn btn-primary" href="/user/projects/{id}">Button</a>


Maintenant, définissez la route dans web.php:


Route::get/'/user/projects/{id}', 'user_controller@showProject'/;


La fonction dans le contrôleur correspondant ressemblera à ceci:


public function showProject/$id/{
$post =posts::find/$id/;
return view/'user.show_projects'/->with/'post', $post/;;
}


J'espère que cela vous aidera.

Pour répondre aux questions, connectez-vous ou registre