所以这里我想将当前登录用户的id附加到表的名称,例如Rating_User_1,但这里的1来自登录用户的id。我将登录用户的ID分配给$ id,如下面的代码所示,并将其附加到表列名称,但这不起作用。我尝试自己回显$ id并且它有效(即它吐出登录用户的id,但这不是我想要的),但是当我尝试将它附加到字符串以便&# 34;模拟"表名不起作用。有关解决方法的任何提示吗?
@foreach($data as $data)
<tr>
<td> {{$loop->iteration}} </td> <!-- add number to the row -->
<td>
<a href="{{ Url('reply_thread') }}/{{ $data->id }}" class="text" >{{ $data->Judul }}</a>
</td>
<td><?php $id = Auth::user()->id;
echo $data->Rating_user_[$id]; ?> </td>
</tr>
@endforeach
我的控制器:
function threads() {
$data=Thread::all();
return view('thread.thread', ['data'=>$data]);
}
表Thread中的一些表有名为Rating_user_1,Rating_user_2等的列。
答案 0 :(得分:0)
变量扩展有时需要大括号才能正常运行。以下应该有效:
echo $data->{'Rating_user_' . $id}
$a = 'b'; $b = 'hello'; echo $$a; // Same as "echo $b", outputs 'hello'
)答案 1 :(得分:0)
您有多个选项可以实现此目的,第一个是使用存储在变量中的名称调用属性/方法:
$tableName = 'Rating_user_' . $id;
$tableName = "Rating_user_$id";
$data->$tableName;
您还可以使用花括号在属性/方法调用本身上创建热concat ,如@romellem建议的那样:
$data->{'Rating_user_' . $id}
$data->{"Rating_user_$id"}
如果您要多次访问$data->Rating_user
我会建议您使用第一种方法,如果不是第二种方法也是如此。
答案 2 :(得分:0)
你可以尝试:
@foreach($data as $data)
<tr>
<td> {{$loop->iteration}} </td> <!-- add number to the row -->
<td>
<a href="{{ Url('reply_thread') }}/{{ $data->id }}" class="text" >
{{ $data->Judul }}
</a>
</td>
<td>{{ $data->{'Rating_user_' . $id} }}</td>
</tr>
@endforeach
答案 3 :(得分:0)
我认为你的代码几乎是正确的,我认为如果你使用双卷曲比使用echo更好:
@foreach($data as $data)
<tr>
<td> {{$loop->iteration}} </td> <!-- add number to the row -->
<td>
<a href="{{ Url('reply_thread') }}/{{ $data->id }}" class="text" >{{ $data->Judul }}</a>
</td>
<td>{{ $data->{'Rating_user_' . Auth::id()} }}</td>
</tr>
@endforeach