Laravel ORM Eloquent无法在共享主机上正常工作,但在本地可以正常运行

问题描述

当我尝试使用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 (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...