【问题标题】:Retrieving a cast array in Laravel 5.5?在 Laravel 5.5 中检索强制转换数组?
【发布时间】:2020-12-28 22:24:22
【问题描述】:

嗨,我想我误解了演员表?基本上我正在尝试将一个已经存储的数组显示回我的视图并且它不工作,我已经存储了数组并且我只是试图将它们检索成纯文本

我有一张桌子:

> Games
>>id |
>>name |
>>mode

MyController.php


    <?php
    
    namespace App\Http\Controllers;
    
    use Illuminate\Support\Facades\Input;
    use Illuminate\Http\Request;
    use App\Game;
    use App\Mode;
    
    class MyController extends Controller
    {
      

      public function gameView($id)
        {
            $game = Game::find($id);
            return view('admin.game.view', ['game' => $game]);
            
        }   
    }

我的模型 Game.php


    <?php
    
    namespace App;
    
    use Illuminate\Database\Eloquent\Model;
    
    class Game extends Model
    {
    
        protected $casts = [
            'mode' => 'array',
        ];

        public function modes()
        {
            return $this->hasMany(Mode::class);
        }

    }

最后是我的视图 view.blade.php


    @extends('layouts.app')
    
    @section('content')
    <div class="container">
        <div class="row">
            <div class="col-md-8 col-md-offset-2">
                <div class="panel panel-default">
                    <div class="panel-heading">View User's Teams & Manage</div>
    
                    <div class="panel-body">
                       <ul>
                            <li>{{$game->name}}</li>
                            <li>{{$game->mode}}</li>
                            <li>{{$game->size}}</li>
                       </ul>
                    </div>
                </div>
            </div>
        </div>
    </div>
    @endsection

【问题讨论】:

  • 你为什么要把它转换成一个对象/数组然后试图像字符串一样回显它?
  • 我把它作为数组存储在我的数据库中,我试图回显数组的反序列化,以便它以可读的格式显示
  • 好的,但是如果你有一个数组,你不能只是回显它。这段代码有意义吗? $foo = [1, 4, 5, 8]; echo $foo; 不,它没有。

标签: php laravel casting


【解决方案1】:

打印数组的方法有很多,但是最简单的方法是使用 foreach 循环。

@foreach ($game->mode as $mode)
    <span>{{ $mode }}</span>
@endforeach

或者您可以根据自己的喜好执行{{ implode(", ", $game-&gt;mode) }} 之类的操作。

【讨论】:

    【解决方案2】:

    您正在像字符串一样显示数组并且存在问题,因此您需要循环获取模式数组。

    @for($i=0;$i<count($game->mode);$i++){ // here you print your result }
    

    【讨论】:

      猜你喜欢
      • 2018-05-03
      • 2018-09-28
      • 2018-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-27
      • 1970-01-01
      相关资源
      最近更新 更多