کسی میتونه علت این ارو رو بگه و باید همه فیلدهای جدول رو nullable کنم؟
General error: 1364 Field 'category_id' doesn't have a default value
چون وقتی دکمه ارسال را برای ذخیره اطلاعات میزنم ارور SQLSTATE[HY000]: General error: 1364 Field 'category_id' doesn't have a default value میده...اگه category_id رو null کنم فیلد بهدی رو این ارو ر میده
خب وقتی ذخیره اطلاعات میزنی میره به کنترلت ، عملیات ذخیره رو انجام میدی تو تیبل مورد نظر؟!
کد روت و کنترلرت رو قرار بدید
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Requests\Numberrequest;
use App\Number;
use App\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class NumberController extends AdminController
{
public function index()
{
$numbers = Number::latest()->paginate(15);
return view('Admin.numbers.all', compact('numbers'));
}
public function create()
{
return view('Admin.numbers.create');
}
public function store(Numberrequest $request)
{
$imageUrl = $this->uploadImages($request->file('images'));
auth()->user()->number()->create(array_merge(['images' => $imageUrl], $request->all()));
return redirect(route('numbers.index'));
}
public function show(Number $number)
{
//
}
public function edit(Number $number)
{
//
}
public function update(Request $request, Number $number)
{
//
}
public function destroy(Number $number)
{
$number->delete();
return redirect(route('numbers.index'));
}
}
کنترلر
<?php
//sunsimkart.com/Admin//
use Illuminate\Support\Facades\Route;
Route::namespace('Admin')->prefix('admin')->group(function () {
$this->get('/panel', 'PanelController@index');
$this->resource('numbers','NumberController');
});
GET|HEAD | admin/numbers | numbers.index | App\Http\Controllers\Admin\NumberController@index | web |
| | POST | admin/numbers | numbers.store | App\Http\Controllers\Admin\NumberController@store | web |
| | GET|HEAD | admin/numbers/create | numbers.create | App\Http\Controllers\Admin\NumberController@create | web |
| | GET|HEAD | admin/numbers/{number} | numbers.show | App\Http\Controllers\Admin\NumberController@show | web |
| | PUT|PATCH | admin/numbers/{number} | numbers.update | App\Http\Controllers\Admin\NumberController@update | web |
| | DELETE | admin/numbers/{number} | numbers.destroy | App\Http\Controllers\Admin\NumberController@destroy | web |
| | GET|HEAD | admin/numbers/{number}/edit | numbers.edit | App\Http\Controllers\Admin\NumberController@edit | web |
| | GET|HEAD | admin/panel | | App\Http\Controllers\Admin\PanelController@index | web |
| | GET|HEAD | api/user | | Closure | api,auth:api
نه دوست عزیز متوجه منظورم نشدی
شما میخوای یک فرم رو تویی تیبل Number تون ذخیره کنید درسته؟!
یا میخوای یک عکس رو تویی تیبل مورد نظرتون ذخیره کنید؟!
کلا سناریتو توضیح بده تا بگم خدمتتون چکار کنید
اینم جدول
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateNumbersTable extends Migration
{
/**
@return void
*/
public function up()
{
Schema::create('numbers', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->integer('category_id')->unsigned();
$table->string('title', 12);
$table->text('body');
$table->string('price',10);
$table->string('slug');
$table->string('condition');
$table->string('type',15);
$table->string('city');
$table->string('goodness');
$table->integer('viewCount')->default(0);
$table->string('images');
$table->timestamps();
});
}
/**
خب یکاری کن متد store تغییر بده و چک کن و اعلام کن
public function store(Numberrequest $request)
{
$number = new Number;
$number->save($request->all());
return redirect(route('numbers.index'));
}
الان به user_id گیر داد
SQLSTATE[HY000]: General error: 1364 Field 'user_id' doesn't have a default value (SQL: insert into numbers
(slug
, updated_at
, created_at
) values (, 2018-05-25 17:47:45, 2018-05-25 17:47:45))
خب user_id رو میخوای برابر کاربر قرار بده.
public function store(Numberrequest $request)
{
$number = new Number;
$number->save(auth()->user()->user_id, $request->all());
return redirect(route('numbers.index'));
}
Type error: Argument 1 passed to Illuminate\Database\Eloquent\Model::save() must be of the type array, null given, called in C:\xampp\htdocs\mehdisim\app\Http\Controllers\Admin\NumberController.php on line 29
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟