I'm trying to pass data from two tables ( SQL
) to a HTML
table structure. When I try to pass my View
, Laravel
does not recognize the relationship method.
View
- atualizador.blade.php
@extends('layouts.sidebar')
@extends('layouts.app')
@section('content')
<table class="table">
<table style="width:80%; margin-left: 10%;">
<tr>
<th>Imagem</th>
<th>Código</th>
<th>Produto</th>
<th>Custo</th>
<th>Preço</th>
<th>Atualização</th>
<th>Status</th>
<th>Estoque</th>
<th>Distruibuidor</th>
<th>Ações</th>
</tr>
<tr>
@foreach($produtos as $produto)
<td>Imagem</td>
<td>{{$produto->erp_productid}}</td>
<td>{{$produto->produtosdescricao->erp_name}}</td>
<td>{{$produto->erp_cost}}</td>
<td>{{$produto->erp_price}}</td>
<td>{{$produto->erp_modifieddate}}</td>
<td>{{$produto->erp_status}}</td>
<td>{{$produto->erp_quantity}}</td>
<td>{{$produto->erp_distributor}}</td>
<td></td>
</tr>
@endforeach
</table>
</table>
<center>{{$produtos->links()}}</center>
@endsection
Controller
- ProdutosController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use DB;
use App\Produtos;
use App\ProdutosDescricao;
class ProdutosController extends Controller
{
public function index()
{
$id = 3;
$produtos = DB::table('erp_product')
->paginate(25);
$p = Produtos::find(3);
return view('atualizador')
->with('produtos', $produtos)
->with('p', $p);
}
}
Model
- Produtos.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Produtos extends Model
{
protected $table = 'erp_product';
protected $primaryKey = 'erp_productid';
public function produtosdescricao()
{
return $this->hasOne('App\ProdutosDescricao', 'erp_name');
}
}
Rota
<?php
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
Route::get('/home', 'HomeController@index');
Route::get('/atualizador', 'ProdutosController@index');
Route::get('/atualizaBanco', 'HomeController@atualiza');
Route::get('/insereBanco', 'HomeController@insere');
The code returns the error :
Undefined property: stdClass::$produtosdescricao (View: C:\comerciourbano\resources\views\atualizador.blade.php)
Any suggestions?