[英]Is it possible to assign a button a dynamic variable; that changes for each row fetched from the query in a while loop?
[英]Assign a variable to each row from one query
如何在下面的此查询创建的4行中为每行分配一个变量? (laravel,雄辩/流利)
$topics = SubjectUser::where('user_id', 8)
->join('subjectlists', 'subjectlists.id', '=','subjectlists_user.subjectlist_id')
->select('subjectlists.name', 'subjectlists.title1')->orderBy(DB::raw('RAND()'))->take(4)->get();
或者,如果有人知道一种检索4个随机的单独行而没有重复项的方法,这也将有所帮助。 提前致谢。
编辑:
理想情况下,我想回到我的观点
return View::make('subjects', compact(array('firstrow',
'secondrow', 'thirdrow', 'fourthrow')));
这样我可以在我看来这样
{{$firstrow->name}} {{$firstrow->title1}}
上面仅是一个示例,因此在现实生活中,我有很多专栏文章,这就是为什么我正在寻找一种优雅的方式来解决此问题的原因。
这很尴尬,但是如果您需要将每一行保存在变量中,则可能需要使用双美元符号:
$var = "value"; // variable is $var
$$var = "other value"; // variable is $value
每行都会创建一个新变量,该变量设置为该行的唯一值,例如id值。 伪代码示例:
foreach($topics as $t) {
$id = $t.id
$$id = $t
}
您的查询将返回模型的集合。 您可以简单地将其转换为数组,然后使用array_combine()
设置键
$topics = SubjectUser::where('user_id', 8)
->join('subjectlists', 'subjectlists.id', '=','subjectlists_user.subjectlist_id')
->select('subjectlists.name', 'subjectlists.title1')->orderBy(DB::raw('RAND()'))->take(4)->get();
$topics = $topics->all();
$variableNames = ['firstrow', 'secondrow', 'thirdrow', 'fourthrow'];
$viewVariables = array_combine($variableNames, $topics);
return View::make('subjects', $viewVariables);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.