我写了一个像::
这样的成员函数public function details($article_seo){
$articleDet = Articles::where(function($query) {
$query->where('article-seo', '=', $article_seo);
})
->get();
dd($articleDet);
}
并在laravel controller ::
的开头使用了这些namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\articles; /** this is the eloquent model **/
问题是::
当我试图通过网址数据传递我收到的$article_seo
时,它让我对::: Undefined variable: article_seo
成为Laravel的新手我已经检查了很多方法但无法找到。请帮助!!!!
答案 0 :(得分:2)
如果要在闭包内使用外部变量,可以使用use
关键字将变量传递到闭包中。
public function details($article_seo){
$articleDet = Articles::where(function($query) use ($article_seo) {
$query->where('article-seo', '=', $article_seo);
})
->get();
dd($articleDet);
}
您可以轻松地将文章与您的文章匹配。
public function details($article_seo){
$articleDet = Articles::where('article-seo', '=', $article_seo)
->get();
dd($articleDet);
}
答案 1 :(得分:0)
此处不需要关闭,您可以简单地使用模型来找到您正在寻找的方法。
$details = Articles::where('article-seo', '=', $article_seo)->get();
稍微清理一下,默认情况下where表达式将使用等号,所以我们可以省略它。
$details = Articles::where('article-seo', $article_seo)->get();
如果您的数据库值是蛇形的(article_seo而不是article-seo),那么您可以更简化该表达式
$details = Articles::whereArticleSeo($article_seo)->get();
这比原始的基于闭包的方法更容易阅读!