mirror of
https://github.com/robonen/education-project.git
synced 2026-03-20 02:44:31 +00:00
Новости(CRUD + PhotoStorage)
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers\News;
|
namespace App\Http\Controllers\News;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Models\NewsFile;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use App\Models\News;
|
use App\Models\News;
|
||||||
|
|
||||||
@@ -34,7 +35,10 @@ class NewsController extends Controller
|
|||||||
|
|
||||||
public function show(News $news) {
|
public function show(News $news) {
|
||||||
|
|
||||||
return response()->json($news, 200);
|
return response()->json([
|
||||||
|
$news,
|
||||||
|
'photo_id' => NewsFile::where('news_id', '=', $news->id)->get(['id'])
|
||||||
|
], 200);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function edit(News $news, Request $request) {
|
public function edit(News $news, Request $request) {
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ class NewsFileController extends Controller
|
|||||||
$request->name . $ext
|
$request->name . $ext
|
||||||
]);
|
]);
|
||||||
$news->photo_uri = '/storage/news' . '/' . $newsId . '/' . $type . '/' . $request->name;
|
$news->photo_uri = '/storage/news' . '/' . $newsId . '/' . $type . '/' . $request->name;
|
||||||
|
$news->save();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -8,6 +8,6 @@ use Illuminate\Database\Eloquent\Model;
|
|||||||
class BankTaskFile extends Model
|
class BankTaskFile extends Model
|
||||||
{
|
{
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
protected $table = 'bank_tasks_files';
|
protected $table = 'bank_task_files';
|
||||||
protected $fillable = ['name', 'type', 'extension', 'url', 'banktask_id'];
|
protected $fillable = ['name', 'type', 'extension', 'url', 'banktask_id'];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,4 +9,5 @@ class NewsFile extends Model
|
|||||||
{
|
{
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
protected $table = 'news_files';
|
protected $table = 'news_files';
|
||||||
|
protected $fillable = ['name', 'type', 'extension', 'url', 'news_id'];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ class RouteServiceProvider extends ServiceProvider
|
|||||||
protected function configureRateLimiting()
|
protected function configureRateLimiting()
|
||||||
{
|
{
|
||||||
RateLimiter::for('api', function (Request $request) {
|
RateLimiter::for('api', function (Request $request) {
|
||||||
return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip());
|
return Limit::perMinute(100)->by(optional($request->user())->id ?: $request->ip());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ class CreateBankTaskFilesTable extends Migration
|
|||||||
*/
|
*/
|
||||||
public function up()
|
public function up()
|
||||||
{
|
{
|
||||||
Schema::create('bank_tasks_files', function (Blueprint $table) {
|
Schema::create('bank_task_files', function (Blueprint $table) {
|
||||||
$table->bigIncrements('id');
|
$table->bigIncrements('id');
|
||||||
$table->string('name');
|
$table->string('name');
|
||||||
$table->string('type');
|
$table->string('type');
|
||||||
@@ -23,7 +23,7 @@ class CreateBankTaskFilesTable extends Migration
|
|||||||
$table->unsignedInteger('banktask_id');
|
$table->unsignedInteger('banktask_id');
|
||||||
$table->foreign('banktask_id')
|
$table->foreign('banktask_id')
|
||||||
->references('id')->on('bank_tasks')
|
->references('id')->on('bank_tasks')
|
||||||
->onDelete('no action');
|
->onDelete('cascade');
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -35,6 +35,6 @@ class CreateBankTaskFilesTable extends Migration
|
|||||||
*/
|
*/
|
||||||
public function down()
|
public function down()
|
||||||
{
|
{
|
||||||
Schema::dropIfExists('bank_tasks_files');
|
Schema::dropIfExists('bank_task_files');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ class CreateNewsFilesTable extends Migration
|
|||||||
$table->unsignedInteger('news_id');
|
$table->unsignedInteger('news_id');
|
||||||
$table->foreign('news_id')
|
$table->foreign('news_id')
|
||||||
->references('id')->on('news')
|
->references('id')->on('news')
|
||||||
->onDelete('no action');
|
->onDelete('cascade');
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,5 +50,5 @@ Route::group(['prefix' => 'news'], function () {
|
|||||||
Route::put('/{news}', 'News\NewsController@edit');
|
Route::put('/{news}', 'News\NewsController@edit');
|
||||||
Route::delete('/{news}', 'News\NewsController@delete');
|
Route::delete('/{news}', 'News\NewsController@delete');
|
||||||
Route::post('/{news}/addphoto', 'News\NewsFileController@store');
|
Route::post('/{news}/addphoto', 'News\NewsFileController@store');
|
||||||
Route::delete('/{file}', 'News\NewsFileController@delete');
|
Route::delete('/photo/{file}', 'News\NewsFileController@delete');
|
||||||
});
|
});
|
||||||
Reference in New Issue
Block a user