使用Laravel在其他表格中显示产品名称

时间:2018-08-13 17:52:15

标签: php mysql laravel laravel-5 eloquent

我在这里再次请求您的帮助。

我想将“分支产品”与“数量”分组,但是,我无法将产品名称显示为产品名称。截至目前,我显示的是产品ID而不是产品名称

    //return MaintainOverride(ruleKey, dto);

    return null;
}

public ActionResult MaintainOverride(ComRuleCompoundKeyDto ruleKey, ComRuleOverrideDto dto)
{
    var currencies = _srv.GetAllCurrenciesUsedByDealers().Select(x => x.CurrencyCode);

    var custTypes = _srv.GetAllCustomerTypes();
    var unitIds = _srv.GetUnitIds();
    var vm = new OverridesViewModel(currencies, custTypes, unitIds, ruleKey, dto);

    return View(vm);
}

public class StupidDto
{
    public ComRuleCompoundKeyDto ruleKey;
    public ComRuleOverrideDto dto;
}

分支模型

   +-----------------+   +-----------------+    +----------------+ 
  |  product table  |   | quantity table  |    |  branch table  |
  +-----------------+   +-----------------+    +----------------+
  |   id            |   |  prod_id      |    |   id           |
  |   productname   |   |  branch_id       |    |   branchname   |
  +-----------------+   |  quantity       |    +----------------+
                        +-----------------+

数量模型

public function products()
    {
        return $this->hasMany('App\Quantity', 'branch_id');
    }

产品型号

public function branch()
    {
        return $this->belongsTO('App\Branch', 'branch_id', 'id');
    }

我的观点

public function productquantities()
    {
        return $this->hasMany('App\Quantity','prod_id');
    }

我的控制器

@foreach($dataBranch as $Branch)
            <h1>Branch {{$Branch->branch_name}}</h1>
            <table class="table table-striped table-bordered">
                <thead>
                  <tr>
                    <th>  </th>
                    <th>Product Name</th>
                    <th>Quantity</th>
                  </tr>
                </thead>
                <tbody>
                  @forelse($Branch->products as $Product)
                  <tr>
                  <td align="center" style="text-align:center"> <a href="#" class="avatar"><img src="{{ asset('productimg') }}/" width="100px"/> </a> </td>
                    <td> <a class="name">{{$Product->prod_id}} //this should be the product name instead of product id</a></td>
                    <td><em class="productprice">{{$Product->quantity}}</em>  </td>

                   </tr>
                   @empty
                   <tr><td colspan='4'><em>No Data</em></td></tr>
                  @endforelse


                </tbody>
              </table>
            @endforeach 

1 个答案:

答案 0 :(得分:0)

截至目前,您正在将分支与数量表而非产品表连接在一起。您可以在Branch模型中进行以下操作(未经测试)。这个想法是通过从分支到产品的数量的联接。

public function productsThroughQuantity() {
    // The columns need to be added
    return $this->hasManyThrough('App\Products', 'App\Quantity', <columns>);
}

但是,我看到的一个问题是,如果您这样做,可能会收到有关分支和产品ID字段的列不明确的SQL警告。我会在您的产品表ID => product_id和分支表ID => branch_id中重命名。在数量表中,将branch_id重命名为branch_table_id。

然后在您的分支和产品模型中:

protected $primaryKey = "<branch/products>_id";