我开发了一个文件控制器,它将书籍存储在我的数据库中,其中包含名称、作者、描述、文件、数量、价格。我正在尝试根据名称对书籍进行搜索操作,在这里我很困惑,我尝试了不同的不同文章,但没有得到. 请帮助我如何编写一个函数,该函数根据搜索名称(接受名称请求)返回书籍数据并显示书籍。FileController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Books;
use App\Models\User;
use Illuminate\Support\Facades\Storage;
use App\Http\Resources\Books as BookResource;
class FileController extends Controller
{
public function upload(Request $request ){
$book = new Books();
$book->price=$request->input('price');
$book->name=$request->input('name');
$book->quantity=$request->input('quantity');
$book->author=$request->input('author');
$book->description=$request->input('description');
$book->file=$request->input('file');
$book->user_id = auth()->id();
$book->save();
return new BookResource($book);
}
public function display_Book($id)
{
$book=Books::findOrFail($id);
if($book->user_id==auth()->id())
return new BookResource($book);
else{
return response()->json(['error' => 'UnAuthorized/invalid id'], 401);
}
}
public function searchbooks(Request $request)
{
// $books=Books::all();
// if(User::find($books->user_id=auth()->id())->books){
$query = Books::query();
if ($request->has('q')) {
$searchParam = $request->get('q');
$query->where('name', 'LIKE', "%{$searchParam}%");
}
return BookResource::collection($query);
}
public function displayBooks()
{
$books=Books::all();
return User::find($books->user_id=auth()->id())->books;
}
public function updateBook(Request $request, $id){
$book=Books::findOrFail($id);
if($book->user_id==auth()->id()){
$book=Books::where('id',$id)
->update(array('name'=>$request->input('name'),
'price' => $request->input('price'),
'author' => $request->input('author'),
'description'=>$request->input('description'),
'quantity'=>$request->input('quantity'),
'file'=>$request->input('file')
));
return['updated successfully'];
}
}
}
Books migration table
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateBooksTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('books', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('author');
$table->integer('price');
$table->integer('quantity');
$table->string('file')->nullable();
$table->longText('description');
$table->unsignedBigInteger('user_id');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('books');
}
}
APi.php[api routes]
Route::group(["middleware"=>['auth.jwt']],function(){
Route::post('addBooks',[FileController::class,'upload']);
Route::get('getBooks',[FileController::class,'displayBooks']);
Route::get('showBook/{id}',[FileController::class,'display_Book']);
Route::put('updateBook/{id}',[FileController::class,'updateBook']);
Route::delete('deleteBook/{id}',[FileController::class,'DeleteBook']);
Route::get('searchBooks/{name}',[FileController::class,'searchbooks']);
});
Public function searchbooks($name){
return Books::where("name",$name)->get();
}
我希望这会奏效
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句