Laravel 为什么通过 id 获取元素不起作用
Laravel why get element by id is not working
当我在 Laravel 控制器中输入硬编码 ID 时,我能够获取数据,但是当
我在文本框数据中输入相同的值时出现错误。
working Laravel controller
显示针对 id 123 的值:
public function getdata(Request $request)
{
$files = Files::where('file_code','=','123')->first();
return response()->json([
'files'=> $files,
], 200);
}
不工作Laravel控制器:
public function getdata(Request $request)
{
$file_code=Files::find($request->id);
$files = Files::where($file_code,'=','file_code')->get();
return response()->json([
'files'=> $files,
], 200);
}
日志错误:
Column not found: 1054 Unknown column '' in 'where clause' (SQL: select * from `files` where `` = file_code)
视图:
<input v-model="state.file_code" type="text" placeholder="Enter file code">
<textarea v-model="state.files.text_data" placeholder="text appear here "></textarea>
<button @click="getdata" class="bg-green-800 rounded p-2 mb-5 text-white " >RECEIVE</button>
获取函数:
function getdata(){
axios.get('http://127.0.0.1:8000/api/get-data',{
id: state.file_code,
})
.then(response=>{
state.files=response.data.files;
});
}
路线:
Route::get('get-data',[FilesController::class,'getdata']);
您的问题在这里:
路线:
Route::get('get-data',[FilesController::class,'getdata']);
控制器:
$file_code=Files::find($request->id);
$files = Files::where($file_code,'=','file_code')->get();
您的路由未指定 {id}
变量,因此您控制器中的 $request->id
将始终为 null
.
然后你试图用 Files::find(null)
得到一个 Files
对象,它也总是 return null
,即 $file_code
是 null
.
那么您正在寻找另一个带有 Files::where(null,'=','file_code')->get();
的 Files
对象。此行将 return 所有 Files
对象,其中 null
或 ""
列是 "file_code"
.
您可能想要做的是:
路线:
Route::get('get-data/{id}',[FilesController::class,'getdata']);
控制器:
$files = Files::find($request->id);
当我在 Laravel 控制器中输入硬编码 ID 时,我能够获取数据,但是当 我在文本框数据中输入相同的值时出现错误。
working Laravel controller
显示针对 id 123 的值:
public function getdata(Request $request)
{
$files = Files::where('file_code','=','123')->first();
return response()->json([
'files'=> $files,
], 200);
}
不工作Laravel控制器:
public function getdata(Request $request)
{
$file_code=Files::find($request->id);
$files = Files::where($file_code,'=','file_code')->get();
return response()->json([
'files'=> $files,
], 200);
}
日志错误:
Column not found: 1054 Unknown column '' in 'where clause' (SQL: select * from `files` where `` = file_code)
视图:
<input v-model="state.file_code" type="text" placeholder="Enter file code">
<textarea v-model="state.files.text_data" placeholder="text appear here "></textarea>
<button @click="getdata" class="bg-green-800 rounded p-2 mb-5 text-white " >RECEIVE</button>
获取函数:
function getdata(){
axios.get('http://127.0.0.1:8000/api/get-data',{
id: state.file_code,
})
.then(response=>{
state.files=response.data.files;
});
}
路线:
Route::get('get-data',[FilesController::class,'getdata']);
您的问题在这里:
路线:
Route::get('get-data',[FilesController::class,'getdata']);
控制器:
$file_code=Files::find($request->id);
$files = Files::where($file_code,'=','file_code')->get();
您的路由未指定 {id}
变量,因此您控制器中的 $request->id
将始终为 null
.
然后你试图用 Files::find(null)
得到一个 Files
对象,它也总是 return null
,即 $file_code
是 null
.
那么您正在寻找另一个带有 Files::where(null,'=','file_code')->get();
的 Files
对象。此行将 return 所有 Files
对象,其中 null
或 ""
列是 "file_code"
.
您可能想要做的是:
路线:
Route::get('get-data/{id}',[FilesController::class,'getdata']);
控制器:
$files = Files::find($request->id);