问题描述
当我尝试使用Laravel的Eloquent从表单模型从外键获取值时,这里出现错误Trying to get property 'form' of non-object (View: /home/laravel/web/laravel.swt101.eu/public_html/abonamenty/resources/views/invoices/show.blade.php)
。在这一行:{{ $invoice->form->form }}
。我有雄辩的一些问题,不得不多次使用没有Eloquent的数据库。相同的代码可以很好地用于另一个视图(形式),它具有与发票相同的功能,但是在共享主机上不会出错。 invoices.show视图中的{{ $invoice->form->form }}
仅在本地主机上有效。我不知道怎么回事。有谁能够帮助我?请。如果服务器出现问题,有人可以帮助我为Laravel Eloquent配置共享托管吗?
这是共享错误的链接。我仅在共享主机上收到此错误。在本地工作正常 https://flareapp.io/share/x7XVWgma
这是我的发票模型
<?php
namespace App;
use App\Form;
use Kyslik\ColumnSortable\Sortable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Invoice extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
use SoftDeletes;
use Sortable;
protected $table = 'invoices';
protected $fillable = [
'invoicenumber','invoicedate','id','selldate','user_id','paymentmethod','paymentdate','status','comments','city','paid','autonumber','automonth','autoyear','name','PKWIU','quantity','unit','netunit','nettotal','VATrate','grossunit','grosstotal','form_id','currency_id',];
public $sortable = [ 'invoicenumber',];
protected $dates = ['deleted_at'];
public $primaryKey = 'id';
public function user()
{
return $this->belongsTo('App\User');
}
public function form()
{
return $this->hasOne('App\Form','form_id');
}
public function currency()
{
return $this->hasOne('App\Currency');
}
public function proform()
{
return $this->belongsTo('App\Proform');
}
}
这是我的表单模型:
<?php
namespace App;
use App\Invoice;
use Kyslik\ColumnSortable\Sortable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Form extends Model
{
//
protected $table= 'forms';
protected $fillable = [
'id','form',];
public function invoice()
{
return $this->belongsTo('App\Invoice','form_id');
}
public function proform()
{
return $this->belongsTo('App\Proform');
}
}
这是控制器的显示方法:
public function show(Invoice $invoice)
{
$users = User::all('showname','id');
$forms = Form::all('id','form');
$currencys = Currency::all('id','currency','course');
$query = DB::table('forms')
->join('invoices','forms.id','=','invoices.form_id');
$query1 = DB::table('currencys')
->join('invoices','currencys.id','invoices.currency_id');
/*$invoice2 = Invoice::with('form')->find($invoice->id);*/
$invoice2 = Invoice::find($invoice->id);
$form = $invoice2->form;
$invoice->id;
/* dd($invoice2->form); */
return view('invoices.show',compact('users','forms','currencys','invoice','query','query1','invoice2'));
}
这是我的表演视图:
@extends('layouts.app')
@section('content')
<div class="row">
<div class="col-lg-12 margin-tb">
<div class="pull-left">
<h2>Szczegóły abonamentu</h2>
</div>
<div class="pull-right">
<a class="btn btn-primary" href="{{ route('invoices.index') }}"> Wstecz</a>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Numer faktury:</strong>
{{ $invoice->autonumber }}
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Kontrahent:</strong>
{{ $invoice->user->showname }}
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Forma płatności:</strong>
{{ $invoice->form->form }}
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Waluta:</strong>
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Data wystawienia faktury:</strong>
{{ $invoice->invoicedate }}
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Data sprzedaży:</strong>
{{ $invoice->selldate }}
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Metoda płatności:</strong>
{{ $invoice->paymentmethod }}
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Termin płatności:</strong>
{{ $invoice->paymentdate }}
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Miejsce wystawienia:</strong>
{{ $invoice->city }}
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Wpłacono:</strong>
{{ $invoice->paid }}
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Status:</strong>
{{ $invoice->status }}
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Uwagi:</strong>
{{ $invoice->comments }}
</div>
</div>
<div class="pull-left" style="margin: 15px;">
<h3>Pozycje proformy</h3>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Nazwa towaru lub usługi:</strong>
{{ $invoice->name }}
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>PKWiU:</strong>
{{ $invoice->PKWIU }}
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Ilość:</strong>
{{ $invoice->quantity }}
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Jednostka:</strong>
{{ $invoice->unit }}
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Cena netto jednostki:</strong>
{{ $invoice->netunit }}
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Netto razem:</strong>
{{ $invoice->nettotal }}
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Stawka VAT:</strong>
{{ $invoice->VATrate }}
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Brutto jednostka:</strong>
{{ $invoice->grossunit }}
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Brutto razem:</strong>
{{ $invoice->grosstotal }}
</div>
</div>
</div>
@endsection
这是带有显示方法的发票控制器的所有代码
<?php
namespace App\Http\Controllers;
use Kyslik\ColumnSortable\Sortable;
use App\Invoice;
use Illuminate\Http\Request;
use App\User;
use App\Proform;
use App\Form;
use App\Currency;
use DB;
class InvoiceController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
function __construct()
{
$this->middleware('permission:product-list|product-create|product-edit|product-delete',['only' => ['index','show']]);
$this->middleware('permission:product-create',['only' => ['create','store']]);
$this->middleware('permission:product-edit',['only' => ['edit','update']]);
$this->middleware('permission:product-delete',['only' => ['destroy']]);
}
public function search4(Request $request)
{
$user = User::all('showname','id');
$invoices = Invoice::sortable()->paginate(5);
$query = DB::table('users')
->join('invoices','users.id','invoices.user_id');
$search = $request->get('search');
$requestData = ['showname'];
/* $query = Proform::query(); */
foreach ($requestData as $field){
$query->orWhere($field,'like','%'.$search.'%');
}
$data2=$query->paginate(5);
return view('invoices.index',['invoices' => $data2,'user'=> $user])->with('i',($request->input('page',1) - 1) * 5);
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$user = User::all('showname','id');
$invoices = Invoice::sortable()->paginate(5);
return view('invoices.index',compact('invoices','user'))
->with('i',(request()->input('page',1) - 1) * 5);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
$users = User::all('showname','course');
return view('invoices.create','currencys'));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$autoyear = date('Y');
$automonth = date('m');
$autonumber = DB::table('proforms')
->select(DB::raw('MAX(autonumber) as autonumber'))
->where('automonth','$automonth')
->where('autoyear','$autoyear')
->get();
@$auto = @$autonumber[0]->autonumber;
@$auto[0]++;
print_r($auto);
$number = "$auto[0]/$automonth/$autoyear/faktura";
$validatedData = request()->validate([
'invoicedate' => 'required','user_id' => 'required','selldate' => 'required','paymentdate' => 'required','paymentmethod' => 'required','status' => 'required','comments' => 'nullable','city' => 'nullable','paid' => 'nullable','name' => 'required','PKWIU' => 'nullable','quantity' => 'required','unit' => 'required','netunit' => 'required','nettotal' => 'required','VATrate' => 'required','grossunit' => 'required','grosstotal' => 'required',]);
DB::table('invoices')->insert([
['invoicenumber' => $request->invoicenumber,'invoicedate' => $request->invoicedate,'selldate' => $request->selldate,'user_id' => $request->user_id,'form_id' => $request->form_id,'currency_id' => $request->currency_id,'paymentmethod' => $request->paymentmethod,'paymentdate' => $request->paymentdate,'status' => $request->status,'comments' => $request->comments,'city' => $request->city,'autonumber' => $request->autonumber,'automonth' => $request->automonth,'autoyear' => $request->autoyear,'name' => $request->name,'PKWIU' => $request->PKWIU,'quantity' => $request->quantity,'unit' => $request->unit,'netunit' => $request->netunit,'nettotal' => $request->nettotal,'VATrate' => $request->VATrate,'grossunit' => $request->grossunit,'grosstotal' => $request->grosstotal,'autonumber' => $number,'automonth' => $automonth,'autoyear'=> $autoyear],]);
return redirect()->route('invoices.index')
->with('success','Invoice created successfully.');
}
/**
* Display the specified resource.
*
* @param \App\Product $product
* @return \Illuminate\Http\Response
*/
public function show(Invoice $invoice)
{
$users = User::all('showname','invoice2'));
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Product $product
* @return \Illuminate\Http\Response
*/
public function edit(Invoice $invoice)
{
$users = User::all('showname','course');
return view('invoices.edit',compact('invoice','users','currencys'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Product $product
* @return \Illuminate\Http\Response
*/
public function update(Request $request,Invoice $invoice)
{
request()->validate([
'invoicedate' => 'required',]);
/* $invoice->update($request->all()); */
DB::table('invoices')
->where('id',$invoice->id)
->update([
'invoicenumber' => $request->invoicenumber,]);
return redirect()->route('invoices.index')
->with('success','Invoice updated successfully');
}
/**
* Remove the specified resource from storage.
*
* @param \App\Product $product
* @return \Illuminate\Http\Response
*/
public function destroy(Invoice $invoice)
{
/* $invoice->delete(); */
DB::table('invoices')
->where('id',$invoice->id)
->update(['deleted' => 1]);
return redirect()->route('invoices.index')
->with('success','Invoice deleted successfully');
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)