商品には、商品ブランド「productbrand」とテーブルproductbrandとproductbrandとの間に一対一の関係「ブランド」とテーブルブランドがあります。テーブルブランドには「ブランド」の列があります。そして私はその製品のブランドにアクセスすることができます。その他のカテゴリ、ユーザー名などはすべて正しくアクセスされます。JavaScriptコードでラーベル関係にアクセスする
public function show(Request $request)
{
if($request->ajax())
{
$id = $request->id;
if($id)
{
$show = Product::where(['product_id'=>$id])->first();
$category = $show->category->category;
$username = $show->user->username;
$getbrands = $show->productbrand;
foreach($getbrands as $getbrand)
{
$brand=$getbrand->brand->brand;
}
if($show)
{
echo json_encode(array('status' => TRUE, 'show' => $show, 'username' => $username, 'category' => $category, 'brand' => $brand)); die;
}
}
}
echo json_encode(FALSE);die;
}
AjaxとjQueryの:私は一つだけのブランドを得ることができ
$.ajax({
type: "POST",
url: "{{url('/product/show')}}",
data: {id:id},
success: function (data) {
var res = $.parseJSON(data);
if(res.status == true)
{
var result = 'Category: ' + res.category + '<br>' +
'Product by: ' + res.username + '<br>' +
'Brands: ' + res.brand + '<br>' +
'Price: ' + res.show.price + '<br>' +
'Price type: ' + res.show.price_type + '<br>' +
'Product Views: ' + res.show.views + '<br>';
$('#result').html(result);
}
}
});
この方法です。私も次の方法で試しましたが失敗しました。
コントローラで:私はあなたがルートを作成し、必要なデータを取得するために、AJAXを使用すべきだと思う
for(var i=0; i<res.getbrands.length; i++)
{
var brands=res.getbrands[i].brand.brand; //First 'brand' is relation and second is the brand I am trying to access
}
このお試しください: $ショー=製品::([ 'product_idを' => $のID]) - >( 'productbrand')と - )(最初の>を。 –
@Autista_z問題はjavascriptでアクセスしています。 – micky
私は答えを書いていましたが、私はあなたのコードが非常に奇妙であることに気付きました。私は本当にwww.laracasts.comレッスンを見てみることをお勧めします、あなたはlaravelについてたくさん学ぶでしょう。がんばろう。 –