在null上调用成员函数replicate()/从DB克隆产品

时间:2018-01-12 08:47:09

标签: laravel laravel-5

我希望在我的数据库中使用新的产品ID复制产品。

我的index.blade:

<form action="{{ route('cloneproduct',['uid'=>$product->uniqueid]) }}" method="post" enctype="multipart/form-data">

{{csrf_field()}}

<button type="submit" name="button" class="cloneproduct">Clone</button>

</form>

路线:

Route::post('cloneproduct/{uniqueid}','ProfileController@CloneItem')->name('cloneproduct');

控制器:

public function CloneItem($uniqueid)
    {
        $product = Product::find($uniqueid);
        $new_product = $product->replicate();
        $new_product->push(); 
       return redirect()->back();

    }

错误:

  

在null

上调用成员函数replicate()

问题是什么?它在我的数据库中不是空的..

由于

2 个答案:

答案 0 :(得分:0)

您收到错误是因为表格中没有id = $uniqueId行:

Product::find($uniqueid);

find()方法使用主键查找行。因此,如果您已将id更改为其他内容,则需要在$primaryKey模型中定义Product属性:

protected $primaryKey = 'uid';

您还可以检查find()是否未返回对象:

if (is_null($product))

答案 1 :(得分:0)

尝试使用findOrFail()代替这种情况。

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.silambarasan.test.MainActivity"
>

 <TextView
     android:id="@+id/special_text_view"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_marginLeft="8dp"
     android:layout_marginStart="8dp"
     android:layout_marginTop="8dp"
     android:text="Today is:"
     android:textColor="@android:color/black"
     android:textSize="24sp"
     android:visibility="visible"
     app:layout_constraintEnd_toEndOf="parent"
     app:layout_constraintLeft_toLeftOf="parent"
     app:layout_constraintStart_toStartOf="parent"
     app:layout_constraintTop_toTopOf="parent"
     />

 <TextView
     android:id="@+id/date_text_view"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_marginBottom="8dp"
     android:layout_marginLeft="8dp"
     android:layout_marginStart="8dp"
     android:layout_marginTop="8dp"
     android:text="The date is:"
     android:textColor="@android:color/black"
     android:textSize="24sp"
     app:layout_constraintBottom_toTopOf="@+id/oc_text_view"
     app:layout_constraintEnd_toEndOf="parent"
     app:layout_constraintLeft_toLeftOf="parent"
     app:layout_constraintStart_toStartOf="parent"
     app:layout_constraintTop_toBottomOf="@id/special_text_view"
     />


  <TextView
     android:id="@+id/oc_text_view"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_marginLeft="8dp"
     android:layout_marginStart="8dp"
     android:layout_marginTop="16dp"
     android:text="The day of the omer is:"
     android:textColor="@android:color/black"
     android:textSize="24sp"
     android:visibility="visible"
     app:layout_constraintBottom_toTopOf="@+id/guideline1"
     app:layout_constraintEnd_toEndOf="parent"
     app:layout_constraintHorizontal_bias="0.47"
     app:layout_constraintLeft_toLeftOf="parent"
     app:layout_constraintStart_toStartOf="parent"
     app:layout_constraintTop_toBottomOf="@id/date_text_view"
     />

  <ListView
     android:id="@+id/list_view"
     android:layout_width="match_parent"
     android:layout_height="0dp"
     android:layout_marginTop="8dp"
     app:layout_constraintBottom_toBottomOf="parent"
     app:layout_constraintEnd_toEndOf="parent"
     app:layout_constraintHorizontal_bias="0.0"
     app:layout_constraintStart_toStartOf="parent"
     app:layout_constraintTop_toTopOf="@+id/guideline1"
     app:layout_constraintVertical_bias="1.0"
     >
  </ListView>

  <android.support.constraint.Guideline
      android:id="@+id/guideline1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:orientation="horizontal"
      app:layout_constraintGuide_percent="0.3"
     />

  </android.support.constraint.ConstraintLayout>