PHP将变量附加到字符串的末尾

PHP将变量附加到字符串的末尾,php,html,laravel,Php,Html,Laravel,所以这里我想把当前登录用户的id附加到一个表的名称中,比如Rating_user_1,但是这里的1来自登录用户的id。我将登录用户的id分配给$id,如下代码所示,并将其附加到表列名中,但这不起作用。我试着自己回显$id,它可以工作(也就是说,它吐出登录用户的id,但这不是我想要的),但是当我试图将它附加到字符串以“模拟”表名时,它就不工作了。关于解决办法有什么建议吗 @foreach($data as $data) <tr> <td> {{$loop->

所以这里我想把当前登录用户的id附加到一个表的名称中,比如Rating_user_1,但是这里的1来自登录用户的id。我将登录用户的id分配给$id,如下代码所示,并将其附加到表列名中,但这不起作用。我试着自己回显$id,它可以工作(也就是说,它吐出登录用户的id,但这不是我想要的),但是当我试图将它附加到字符串以“模拟”表名时,它就不工作了。关于解决办法有什么建议吗

@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

表线程中的一些表具有名为Rating_user_1、Rating_user_2等列。

变量展开有时需要大括号才能正常工作。以下方面应起作用:

echo $data->{'Rating_user_' . $id}
  • 有关“花括号”变量展开的信息,请参见
  • 虽然看起来您不需要它,但阅读它可能也很有用。(又名,
    $a='b';$b='hello';echo$$a;//与“echo$b”相同,输出“hello”

要实现这一点,有多个选项,第一个选项是使用存储在变量中的名称调用属性/方法:

$tableName = 'Rating_user_' . $id;
$tableName = "Rating_user_$id";
$data->$tableName;
您还可以使用大括号对属性/方法调用本身进行热连接,正如@romellem建议的那样:

$data->{'Rating_user_' . $id} 
$data->{"Rating_user_$id"} 
如果您要多次访问
$data->Rating\u user
,我建议您使用第一种方法,如果不是,第二种方法也可以。

您可以尝试:

@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
@foreach($data作为$data)
{{$loop->iteration}
{{$data->{'Rating_user{.$id}}
@endforeach

我认为您的代码几乎是正确的,我认为如果您使用double curly比使用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
@foreach($data作为$data)
{{$loop->iteration}
{{$data->{'Rating_user_'.Auth::id()}}
@endforeach

显示控制器代码及其返回数据的位置。@Webinion编辑了我的问题为什么要为每个新用户创建单独的列?您正在创建EAV设计吗?简单地
Rating_user_u{{$Auth::user()->id}
?请记住检查答案是否正确(有多个有效答案),这样问题就结束了,其他用户可以将答案识别为他们问题的解决方案。非常感谢。
@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