从动作生成URL时出错:array_combine():两个参数应具有相同数量的元素

时间:2013-11-27 14:04:25

标签: laravel laravel-4

我有一个搜索结果视图,其中包含来自其他网站API的表格生成列表。我正试图通过GET将艺术家ID传递给另一个下一个动作。然后,艺术家ID将用于与API交互。

我尝试像这样传递艺术家ID,但我收到'array_combine():两个参数应该有相同数量的元素'。

有问题的观看文件:

    @foreach($parser->Artists->Artist as $Artist)
<table class = "table table-striped">
    <thead>
        {{ var_dump(strval($Artist['ID']))}}
        <h3><a href = "{{ action('ArtistController@detail', strval($Artist['ID'])) }}">{{ $Artist['ListName'] }}</a></h3>
    </thead>
    <tbody>

vardump是测试一个字符串实际上被传递给action()。我可以在它是一个简单的XML对象之前确认它。

这是相应的路线:

Route::get('/artist/detail/{$artist}','ArtistController@detail');

控制器动作:

<?php

// app/controllers/ArtistController

class ArtistController extends BaseController
{
    public function detail($Artist) {
            return 'Artist ID is ' . $Artist;
    }
{

1 个答案:

答案 0 :(得分:0)

问题在于Laravel太聪明了。我的$ Artist变量不是作为字符串读取的,而是作为模型读取的,因为绑定了routes文件。

routes.php文件

 Route::model('artist','Artist');

我从$ Artist_ID更改了$ Artist,效果很好。